Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение *.csv (Excel овский файл с разделителями), разделители-запятые 
V
    Опции темы
Serebrus
Дата 20.11.2008, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 22.5.2007
Где: Ташкент

Репутация: нет
Всего: нет



Привет друзья.

Есть некий list.csv файл (описанный в названии темы).
Файл хранит большое количество записи (более чемм 2300 рядов).
Надо их записать в БД.
Но этот код не помогает разобрать контент файла в массив:
Код

if(isset($_FILES['loadfile']))
{
 $myfile = $_FILES["loadfile"]["tmp_name"];
 $fp = fopen($myfile,"r");
 $content = fread($fp, filesize($myfile));
 fclose($fp);
 $ln=explode('\n', $content);
 for($i=1; $i<=count($ln); $i++)
 {
  $mass[$i-1]=explode(';', $ln[$i-1]);
 }
 
 echo "<table>";
 for($i=1; $i<=count($ln); $i++)
 {
  echo "<tr>";
  for($j=1; $i<=count($mass[$i-1]); $i++)
  {
   echo "<td>".$i.".".$j." : ".$mass[$i-1][$j-1]."</td>";
  }
  echo "</tr>";
 }
 echo "</table>";
 
 //echo "<textarea cols=\"100\" rows=\"10\">".$content."</textarea>";
}


Подскажите ошибку.
Спасибо.
PM MAIL   Вверх
skyboy
Дата 20.11.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Serebrus @  20.11.2008,  08:05 Найти цитируемый пост)
Подскажите ошибку.

а РНР тебе ошибку подсказать не может? ни ошибок, ни предупреждений, ни советов в логе?
PM MAIL   Вверх
solenko
Дата 20.11.2008, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Serebrus,
1. Для того, чтобы строка содержала перевод строки нгужно записывать "\n" (двойные кавычки). При записи в одинарных строка будет содержать два символа -- обратный слеш и n.
2. fgetcsv


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Serebrus
Дата 20.11.2008, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 22.5.2007
Где: Ташкент

Репутация: нет
Всего: нет



skyboy, php не выводит вообше ошибок, если чесно говоря я точно незнаю каким символом Excel делит строки, я по логеке задал \n.
Пробовал и \t, но без смысла.Что рекомендуете делать?

Добавлено @ 10:25
Все в порядке, я по ошибке внутри вложенного цикла указал переменный первого цикла:

Цитата(Serebrus @  20.11.2008,  09:05 Найти цитируемый пост)
echo "<table>";
 for($i=1; $i<=count($ln); $i++)
 {
  echo "<tr>";
  for($j=1; $i<=count($mass[$i-1]); $i++) //должно быть for($j=1; $j<=count($mass[$i-1]); $j++)
  {
   echo "<td>".$i.".".$j." : ".$mass[$i-1][$j-1]."</td>";
  }
  echo "</tr>";
 }
 echo "</table>";


: )

Это сообщение отредактировал(а) Serebrus - 20.11.2008, 10:27
PM MAIL   Вверх
bars80080
Дата 20.11.2008, 10:28 (ссылка) |   (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



тебе уже посоветовали, считывать файл не циеликом fread, а по строчно fgets, причём разработчики уже побеспокоились и сделали специальную функцию для автоматического разбора csv - fgetcsv http://php.ru/manual/function.fgetcsv.html
PM MAIL WWW   Вверх
theworldcreator
Дата 20.11.2008, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



Кстати, насколько я понял, ты таблицу рисуешь для проверки правильности массива(ты же написал что конечная задача писать его в БД). Для этих целей рациональнее использовать встроенные функции, например print_r()
PM MAIL WWW ICQ   Вверх
ksnk
Дата 20.11.2008, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата

разделители-запятые
...
explode(';',...

Может в этом проблема?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.