Roman Piekarski

Roman Piekarski Programista do
wynajęcia

Temat: problem z danymi z pliku csv

Łukasz S.:
Generalnie jestem juz bliski rozwiazania tego problemu. Sprawa jest glebsza niz sie spodziewalem. Napisze wam dzisiaj do czego doszedlem.

Jak otwierasz ten CSV zanim przekazesz uchwyt do fgetcsv()? W trybie binarnym? Jesli nie, to moze Ci mieszac "locale" serwera, co zreszta jest wspomniane w dokumentacji:


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.


IMHO, oczywiscie.

locale jest ok:

LANG=pl_PL.utf8
LC_CTYPE="pl_PL.utf8"
LC_NUMERIC="pl_PL.utf8"
LC_TIME="pl_PL.utf8"
LC_COLLATE="pl_PL.utf8"
LC_MONETARY="pl_PL.utf8"
LC_MESSAGES="pl_PL.utf8"
LC_PAPER="pl_PL.utf8"
LC_NAME="pl_PL.utf8"
LC_ADDRESS="pl_PL.utf8"
LC_TELEPHONE="pl_PL.utf8"
LC_MEASUREMENT="pl_PL.utf8"
LC_IDENTIFICATION="pl_PL.utf8"
LC_ALL=
Roman Piekarski

Roman Piekarski Programista do
wynajęcia

Temat: problem z danymi z pliku csv

Panowie problem wyglada nastepujaca => lektura => http://bugs.php.net/bug.php?id=48507

Tam sa rozwiazania. Najlepiej sprawdza sie:


protected function handleCsvFile()
{
$_file = sfConfig::get('sf_cache_dir').'/tmp_file_name.csv';

file_put_contents($_file, iconv("windows-1250", "UTF-8", file_get_contents($this->csv_file)));

return fopen($_file, "r");
}
Roman Piekarski edytował(a) ten post dnia 27.09.10 o godzinie 13:01

konto usunięte

Temat: problem z danymi z pliku csv

Roman Piekarski:
Panowie problem wyglada nastepujaca => lektura => http://bugs.php.net/bug.php?id=48507

Tam sa rozwiazania. Najlepiej sprawdza sie:


protected function handleCsvFile()
{
$_file = sfConfig::get('sf_cache_dir').'/tmp_file_name.csv';

file_put_contents($_file, iconv("windows-1250", "UTF-8", file_get_contents($this->csv_file)));

return fopen($_file, "r");
}

a nie mówiłem UTF-8 :P
tego typu rozwiązanie ma jeden zasadniczy feler jakim jest możliwość zrobienia pięknego BUM jak porcja danych będzie zbyt wielka

bezpieczniej było by lecieć linia po linii dla całego pliku zapisując jednocześnie dane do pliku.Przemysław R. edytował(a) ten post dnia 27.09.10 o godzinie 13:09
Roman Piekarski

Roman Piekarski Programista do
wynajęcia

Temat: problem z danymi z pliku csv

Przemysław R.:

bezpieczniej było by lecieć linia po linii dla całego pliku zapisując jednocześnie dane do pliku.Przemysław R. edytował(a) ten post dnia 27.09.10 o godzinie 13:09

Bralem to pod uwage jednak pliki nie sa wieksze niz kilka tysiecy linijek i nie beda wieksze.

konto usunięte

Temat: problem z danymi z pliku csv

Roman Piekarski:
Krzysztof Kurzawa:
wyrzucałeś sobie zapytania SQL na stronę? Bo czy są prawidłowe zależy po której stronie stoi problem. Tak mi się wydaje.

Panowie, powtarzam po raz drugi: "Problem nie pojawia sie na etapie polaczenia z baza danych lecz na etapie rezultatu z fgetcsv".

Nie chce być czarnowidzem, ale generalnie ta funkcja jest słaba.
Pomijając to wymienione zjadanie to u mnie wykładała się na jakichś zwyczajnych CSV-ach (bo są też niezwyczajne - np. "\n" w środku pola).

Następna dyskusja:

Problem z pobieraniem pliku...




Wyślij zaproszenie do