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 :: Запись массива в csv файл

 PHP.SU

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


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

> Без описания
netclan
Отправлено: 25 Сентября, 2013 - 05:19:00
Post Id



Гость


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


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




Пример:
PHP:
скопировать код в буфер обмена
  1.  
  2.  <?PHP
  3.  
  4. $list = array (
  5.     'aaa,bbb,ccc,dddd',
  6.     '123,456,789',
  7.     '"aaa","bbb"'
  8. );
  9.  
  10. $fp = fopen('file.csv', 'w');
  11.  
  12. foreach ($list as $line) {
  13.     fputcsv($fp, split(',', $line));
  14. }
  15.  
  16. fclose($fp);
  17. ?>
  18.  

работает, но вот как можно записать массив:
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => 0324
  4.     [1] => Николаев
  5. )
  6. (
  7.     [0] => 13424
  8.     [1] => Сидоров
  9. )
  10. (
  11.     [0] => 23242
  12.     [1] => Киров
  13. )
  14. (
  15.     [0] => 323424
  16.     [1] => Меньшиков
  17. )
  18. (
  19.     [0] => 4234234
  20.     [1] => Меньшиков
  21. )
  22.  

который и получается при разборе csv функцией fgetcsv? Не понял


-----
O_o
 
 Top
voltag
Отправлено: 28 Сентября, 2013 - 21:24:01
Post Id


Новичок


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


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




Здравствуйте
К сожалению я не могу Вам выдать готового решения, НО кое-что напишу( может поможет)

Это из Вики
Цитата:

CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Каждая строка файла — это одна строка таблицы. Значения отдельных колонок разделяются разделительным символом (delimiter) — запятой (,).


у Вас получился файл с данными в первом примере:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. aaa,bbb,ccc,dddd
  3. 123,456,789
  4. """aaa""","""bbb"""
  5.  


вобщем вы можете создать нечто вот такое
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. 0324б,Николаев
  3. 13424,Сидоров
  4. 23242,Киров
  5.  


И это должно нормально прочитаться.. вот пример кода
Создаю пишу и читаю
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. //Создание данных
  3.  
  4. $Array_of_CODE_NAME = array();
  5.  
  6. $item['code'] = 111;
  7. $item['name'] = 'петров';
  8. array_push($Array_of_CODE_NAME, $item);
  9.  
  10. $item['code'] = 222;
  11. $item['name'] = 'Сидоров';
  12. array_push($Array_of_CODE_NAME, $item);
  13.  
  14. $item['code'] = 333;
  15. $item['name'] = 'Васечкин';
  16. array_push($Array_of_CODE_NAME, $item);
  17. //и так далее )
  18.  
  19.  
  20.  
  21.  
  22. //преобразование в формат
  23. $content = '';
  24. foreach ($Array_of_CODE_NAME as $key => $item)
  25. {
  26.   $content.=$item['code'].','.$item['name']."\n";
  27. }
  28.  
  29. //запись
  30. $fp = fopen('file.csv', 'w');
  31. fwrite($fp,$content);
  32. fclose($fp);
  33.  
  34.  
  35.  
  36.  
  37. //чтение (взято с php.su, описание fgetcsv)
  38. $row = 1;
  39. $handle = fopen("file.csv", "r");
  40. while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
  41.     $num = count($data);
  42.     echo "<p> $num полей в строке $row: <br /></p>\n";
  43.     $row++;
  44.     for ($c=0; $c < $num; $c++) {
  45.        echo $data[$c] . "<br />\n";
  46.     }
  47. }
  48. fclose($handle);
  49. // Код проверил у себя.. работает
  50.  


p/s функция split устарела ( так мне ПХП пишет ) пользоваться ей или нет - на Ваше усмотрение
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB