Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Запись массива в файл
Форумы портала PHP.SU » PHP » Программирование на PHP » Запись массива в файл

Страниц (1): [1]
 

1. GoodDronM - 05 Октября, 2006 - 19:40:51 - перейти к сообщению
Проблема совсем детская:
Есть массив из n(для примера взял 3) строк.
Нужно записать его в файл построчно, т.е чтобы на 1 строке шла 1 строка массива и

т.д.
Запускал в цикле запись в файл
for ($i=0;$i<3;$i++) {
fputs($file,$array[$i]);
}
Первые две строки записались в 1 строке файла, третья во второй.
Как решить эту проблему?


2. UserID - 05 Октября, 2006 - 19:45:16 - перейти к сообщению
GoodDronM пишет:

for ($i=0;$i<3;$i++) {
fputs($file,$array[$i]);
}


for ($i=0;$i<3;$i++)
{
fputs($file,$array[$i]."[slash]r[slash]n");
}

[slash] - имеется ввиду слэш тот, который вощле плюса Улыбка
попробуй так.
3. ARTY - 05 Октября, 2006 - 20:31:58 - перейти к сообщению
Можно так. Имееем массив $array:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $fp = fopen ($file, "w");
  3.  
  4. foreach ($array as $output)
  5. {
  6. fwrite($fp, $output."`r`n");
  7. }
  8.  
  9. fclose($fp);
  10.  


Вместо ` впиши обратный слэш (в тексте на форуме обрезается).

Если нужно, блокировку файла сделать не забудь Улыбка
4. evgenijj - 06 Октября, 2006 - 11:40:37 - перейти к сообщению
ARTY пишет:
Можно так. Имееем массив $array:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $fp = fopen ($file, "w");
  3.  
  4. foreach ($array as $output)
  5. {
  6. fwrite($fp, $output."`r`n");
  7. }
  8.  
  9. fclose($fp);
  10.  


Вместо ` впиши обратный слэш (в тексте на форуме обрезается).

Если нужно, блокировку файла сделать не забудь Улыбка


У автора второй элемент массива содержит символ перевода строки
Цитата:
Первые две строки записались в 1 строке файла, третья во второй.

Поэтому лучше их удалить, чтобы не было пустой строки:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $fp = fopen ($file, "w");
  3.  
  4. foreach ($array as $output)
  5. {
  6. fwrite($fp, trim($output)."`r`n");
  7. }
  8.  
  9. fclose($fp);
  10.  
5. f0rm4t - 16 Октября, 2006 - 20:36:25 - перейти к сообщению
А implode и explode никто не пробовал чтоль?
6. opennetworks - 31 Октября, 2006 - 17:41:18 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1. $open    =    fopen (  "out", "w"  );
  2.  
  3. foreach        (  $Array as $a  )
  4.                    
  5.                    {
  6.                    
  7.                     $str = $a."\n";
  8.  
  9. fwrite            (  $open, $str  );
  10.  
  11.                     }
  12.  
  13. fclose            (  $open );
7. f0rm4t - 31 Октября, 2006 - 18:33:48 - перейти к сообщению
Запись в файл:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.     $array=array('a','b','c');
  4.     $result=implode(',',$array);
  5.     $file=fopen("out.txt","w");
  6.     fwrite($file,$result);
  7.     fclose($file);
  8. ?>
  9.  


Чтение из файла:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.     $file=file("out.txt");
  4.     $str=$file[0];
  5.     $array=explode(",",$str);
  6. ?>
  7.  
8. Vitas - 06 Ноября, 2006 - 10:36:44 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $array = array_map ("rtrim", $array);
  4. $str = implode ("`n", $array);
  5. file_put_contents ("file.txt", $str);
  6.  
  7. ?>

Сначала убираем в каждом элементе в конце переводы строк, потом их слепляем `n и пишем ...

PS: блин, слеши не отображает ...
9. CTAPu4OK - 02 Августа, 2012 - 20:26:37 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $array = array('key' => 'val', 'key2' => 'val2', array('key3' => 'val3'));
  3. $file=fopen("file.txt","w");
  4. fwrite($file,print_r($array, 1));
  5. fclose($file);
  6.  


если кому нить пригодиться =))
10. Bagir - 24 Декабря, 2012 - 09:22:52 - перейти к сообщению
А если надо записать двумерный массив, и эксклюзивная блокировка файла не работает?
понравился метод implode/explode, но не очень понимаю как реализовать это с двумерным массивом при высокой скорости обработки информации.
11. kappa - 24 Декабря, 2012 - 12:34:53 - перейти к сообщению
Сейчас пойдут поздравления Улыбка
12. EuGen - 24 Декабря, 2012 - 12:40:12 - перейти к сообщению
С Новым Годом. Наступающим и 5-ю прошедшими.

 

Powered by ExBB FM 1.0 RC1