Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z odczytem danych z pliku i wyszukaniem w bazie
Forum PHP.pl > Forum > Przedszkole
micz84
Mam taki problem prasuję dokument tekstowy i wczytuje dane do obiektu. Następnie chcę odnaleźć w bazie rekord o takim samym polu nazwa i zaktualizować rekord na podstawie danych w obiekcie. Mimo, że rekord na pewno istnieje nie znajduje mi rekordu :/.

Kodowanie pliku jest ustawione na utf-8, kodowanie skryptu też, a baza na utf8_unicode_ci. Mam też w skrypcie ustawione:
  1. header('Content-Type: text/html; charset=UTF-8');
  2. iconv_set_encoding('input_encoding', 'UTF-8');
  3. iconv_set_encoding('output_encoding', 'UTF-8');
  4. iconv_set_encoding('internal_encoding', 'UTF-8');
  5. mb_internal_encoding('UTF-8');

Plik parsuje linia po linii za pomocą:
  1. $file = fopen('dane.txt',r) or die('Błąd odczytu');
  2. while($line = fgets($file)) {
  3. //...
  4. }

gdy ręcznie wpiszę nazwę wszystko jest w porządku, tylko przy odczycie z pliku jest problem. Gdy wyświetlam odczytane dane mają poprawne kodowanie. Nie wiem co jest nie tak :/.
Kethrax
Witaj,

Jakie masz kodowanie samego pliku PHP ?

W notepadzie ++ jest fajna funkcja do zmiany kodowania, ja proponuję plik php zakodować w utf8 (BEZ BOOM).

Menu->Format->Konwertuj na utf8 (BEZ BOOM).

Pozdr.
micz84
Dzięki za szybką odpowiedź.
Zrobiłem konwersje plików na bez boom i nadal to samo sad.gif. Na pewno chodzi o polskie znaki, bo sprawdzałem bez polskich i zadziałało.

Doczytałem, że trim może być niebezpieczne przy kodowaniu utf8. Da się jakoś zastąpić trim, żeby dało się używać z utf8??
Kethrax
Przed zapytaniem do bazy w php daj jeszcze:

  1. mysql_query("SET CHARSET utf8");
  2. mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`");
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.