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

  • Автор темы lobzey
  • Дата начала
L

lobzey

Написал 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 или найти ему альтернативу.
 
D

destr

Как бы гугл, как бы в помощь

Note: Locale setting is taken into account by this function. If LANG is e.g. en_US.UTF-8, files in one-byte encoding are read wrong by this function.
 
N

nws

Зачем использовать работу с файлами, не легче юзать БД?
Насчет проблем в Линуксе проверь права на запись/чтетение.
 
L

lobzey

Зачем использовать работу с файлами, не легче юзать БД?

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

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

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

destr

Ну сделайте так

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

$cnt = count($array_file);
for ($i = 0; $i < $cnt; ++$i)
{
$stroka = explode(",", $array_file[$i]);
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!