Проблема со считыванием строки файла с разделителями

Тема в разделе "PHP программирование", создана пользователем lobzey, 29 сен 2008.

  1. lobzey

    lobzey Гость

    Репутация:
    0
    Написал php-код для телефонного справочника. На локальном сервере под виндой работает безупречно, на хостере под linux инструкция:

    $stroka=fgetcsv($fp,100,",");

    некорректно заполняет массив. Например строка:
    "123456,иванов и. и.,победы,д. 3"

    разбивается на массив из четырех элементов, но в содержимом корректно отображаются только цифры и символы после точки. Вот что получается:
    $stroka[0] = "123456"
    $stroka[1] = ". и."
    $stroka[2] = ""
    $stroka[3] = ". 3"

    На локальном хостинге "Server Version: Apache/2.0.59 (Win32) PHP/5.1.6 " Все работает нормально.

    Я ,конечно, могу считать данные посимвольно и всё получится, но значительно упадет скорость работы скрипта. Надо как то заставить правильно работать оператор fgetcsv или найти ему альтернативу.
     
  2. destr

    destr Гость

    Репутация:
    0
    Как бы гугл, как бы в помощь
    http://ru2.php.net/fgetcsv
     
  3. nws

    nws Гость

    Репутация:
    0
    Зачем использовать работу с файлами, не легче юзать БД?
    Насчет проблем в Линуксе проверь права на запись/чтетение.
     
  4. Vovochka

    Vovochka Гость

    Репутация:
    0
    Глупость.

    По делу, читай по строчке и юзай split.
     
  5. lobzey

    lobzey Гость

    Репутация:
    0
    Да срадостью бы, но я пока не умею. БД-слишком сложно, а я web-программированием занялся меньше месяца назад. Вот учусь методом тыка. Потихоньку получается. :)

    Когда нибудь узнаю, буду юзать.
     
  6. destr

    destr Гость

    Репутация:
    0
    Ну сделайте так

    Код (Text):
    $array_file = file("myfile.csv");

    $cnt = count($array_file);
    for ($i = 0; $i < $cnt; ++$i)
    {
    $stroka = explode(",", $array_file[$i]);
    }
     
Загрузка...

Поделиться этой страницей