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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запись массива в файл

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Как построчно записать массив в файл?
GoodDronM
Отправлено: 05 Октября, 2006 - 19:40:51
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Окт. 2006  


Помог: 0 раз(а)




Проблема совсем детская:
Есть массив из n(для примера взял 3) строк.
Нужно записать его в файл построчно, т.е чтобы на 1 строке шла 1 строка массива и

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


 
 Top
UserID
Отправлено: 05 Октября, 2006 - 19:45:16
Post Id



Магистр JavaScript


Покинул форум
Сообщений всего: 151
Дата рег-ции: Авг. 2006  


Помог: 0 раз(а)




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] - имеется ввиду слэш тот, который вощле плюса Улыбка
попробуй так.
 
 Top
ARTY
Отправлено: 05 Октября, 2006 - 20:31:58
Post Id



Почетный посетитель


Покинул форум
Сообщений всего: 238
Дата рег-ции: Июнь 2006  


Помог: -2 раз(а)




Можно так. Имееем массив $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.  


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

Если нужно, блокировку файла сделать не забудь Улыбка
 
 Top
evgenijj
Отправлено: 06 Октября, 2006 - 11:40:37
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




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.  
 
 Top
f0rm4t
Отправлено: 16 Октября, 2006 - 20:36:25
Post Id



Посетитель


Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006  


Помог: -1 раз(а)




А implode и explode никто не пробовал чтоль?
 
 Top
opennetworks
Отправлено: 31 Октября, 2006 - 17:41:18
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Окт. 2006  


Помог: 0 раз(а)




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 );
 
 Top
f0rm4t
Отправлено: 31 Октября, 2006 - 18:33:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006  


Помог: -1 раз(а)




Запись в файл:
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.  
 
 Top
Vitas
Отправлено: 06 Ноября, 2006 - 10:36:44
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Авг. 2006  


Помог: 0 раз(а)




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: блин, слеши не отображает ...
 
 Top
CTAPu4OK
Отправлено: 02 Августа, 2012 - 20:26:37
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




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.  


если кому нить пригодиться =))
 
 Top
Bagir
Отправлено: 24 Декабря, 2012 - 09:22:52
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




А если надо записать двумерный массив, и эксклюзивная блокировка файла не работает?
понравился метод implode/explode, но не очень понимаю как реализовать это с двумерным массивом при высокой скорости обработки информации.

(Отредактировано автором: 24 Декабря, 2012 - 09:25:03)

 
 Top
kappa
Отправлено: 24 Декабря, 2012 - 12:34:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




Сейчас пойдут поздравления Улыбка
 
 Top
EuGen Администратор
Отправлено: 24 Декабря, 2012 - 12:40:12
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




С Новым Годом. Наступающим и 5-ю прошедшими.
Тема закрыта!


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB