Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запись в файл
 
 автор: nefel1m   (17.07.2009 в 20:56)   письмо автору
 
 

Имеется исходный файл подобного содержания:

12345
1
23456
2
34567
3


Надо чтобы в итоге получался вот такой файл:

12345 1
23456 2
34567 3


Для этого использую следующее:

$file_array =  file("d:/".$_FILES["filename"]["name"]);
    if(!$file_array) {
        echo("Ошибка открытия файла");
        } else {
            $i = 0;
            $elements = count($file_array);
            $file = fopen("d:/N".$_FILES['filename']['name'],"w+");
            while ($i < $elements) {
                $first = $file_array[$i];
                $second = $file_array[$i+1];
                $itog = "$first $second";
                echo $itog;
                echo "<br>";
                fputs($file, $itog);
                $i = $i+2;
                }
            }
        fclose($file);


И в браузере все отображается все как надо. Но вот в файле получается вот такая фигня:

12345
 1
23456
 2
34567
 3

  Ответить  
 
 автор: Trianon   (17.07.2009 в 21:10)   письмо автору
 
   для: nefel1m   (17.07.2009 в 20:56)
 

У Вас файл html или простой текстовый ?

  Ответить  
 
 автор: nefel1m   (17.07.2009 в 21:13)   письмо автору
 
   для: Trianon   (17.07.2009 в 21:10)
 

обычный текстовый

  Ответить  
 
 автор: nefel1m   (17.07.2009 в 21:21)   письмо автору
 
   для: nefel1m   (17.07.2009 в 21:13)
 

Сейчас посмотрел что если вместо значений массива использовать простую строку типа:
$first = "12345";


то все записывается нормально. но как только начинаешь использовать значения массива начинается беда =((

  Ответить  
 
 автор: Trianon   (17.07.2009 в 21:24)   письмо автору
 
   для: nefel1m   (17.07.2009 в 20:56)
 

$itog = rtrim(($first) . ' ' . rtrim($second) . "\r\n"; 

И подумать!

  Ответить  
 
 автор: nefel1m   (17.07.2009 в 21:38)   письмо автору
 
   для: Trianon   (17.07.2009 в 21:24)
 

Ээм..прошу прощения за тупость..но откуда там беруться эти лишние пробелы??
Функция rtrim() удаляет конечне пробельные символы в конце строки. Но в исходном файле никаких пробелов нет.

P.S. за совет спасибо. все заработало. но откуда пробелы о_0

  Ответить  
 
 автор: Trianon   (17.07.2009 в 21:43)   письмо автору
 
   для: nefel1m   (17.07.2009 в 21:38)
 

Не хотите думать... эх...

там не пробелы.
Там "\r\n" - символы конца строк исходного файла. Их эта функция тоже удаляет.

  Ответить  
 
 автор: nefel1m   (17.07.2009 в 21:51)   письмо автору
 
   для: Trianon   (17.07.2009 в 21:43)
 

Мм..я делал еще так:

fputs($file, $itog."\r\n");


и получалось вот так:

12345
 1

23456
 2

34567
 3


Но как я писал ранее при использовании готовой строки все ОК. =((

  Ответить  
 
 автор: Trianon   (17.07.2009 в 22:08)   письмо автору
 
   для: nefel1m   (17.07.2009 в 21:51)
 

верно. Пара переводов уже была . Вы добавили третий.

  Ответить  
 
 автор: nefel1m   (17.07.2009 в 22:46)   письмо автору
 
   для: Trianon   (17.07.2009 в 22:08)
 

То есть строка из массива попадает с пробелами на конце?? Или я чего не понимаю?? о_0

  Ответить  
 
 автор: Trianon   (17.07.2009 в 23:01)   письмо автору
 
   для: nefel1m   (17.07.2009 в 22:46)
 

строка в массив попадает полностью. Вместе с символами конца строки.
Понятно, что из массива Вы её извлекаете в таком же виде.

  Ответить  
 
 автор: nefel1m   (17.07.2009 в 23:39)   письмо автору
 
   для: Trianon   (17.07.2009 в 23:01)
 

Все..теперь понял =)) огромное спасибо =))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования