Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Problem z odczytem danych z pliku i wyszukaniem w bazie
micz84
post 18.03.2010, 16:37:45
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.10.2004
Skąd: Niemcz

Ostrzeżenie: (0%)
-----


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 :/.
Go to the top of the page
+Quote Post
Kethrax
post 18.03.2010, 16:41:51
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 3
Dołączył: 9.12.2006
Skąd: Kraków

Ostrzeżenie: (10%)
X----


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.


--------------------
Historia wynalazków naukowych i technicznych uczy nas, że rasa ludzka uboga jest w niezależną myśl twórczą i wyobraźnię... człowiek musi niejako dosłownie potknąć się o rzecz samą, aby mu zakwitła Idea. [b]Albert Einstein[/b]
Go to the top of the page
+Quote Post
micz84
post 18.03.2010, 17:11:31
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.10.2004
Skąd: Niemcz

Ostrzeżenie: (0%)
-----


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??

Ten post edytował micz84 18.03.2010, 17:44:55
Go to the top of the page
+Quote Post
Kethrax
post 18.03.2010, 17:59:56
Post #4





Grupa: Zarejestrowani
Postów: 80
Pomógł: 3
Dołączył: 9.12.2006
Skąd: Kraków

Ostrzeżenie: (10%)
X----


Przed zapytaniem do bazy w php daj jeszcze:

  1. mysql_query("SET CHARSET utf8");
  2. mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`");


Ten post edytował Kethrax 18.03.2010, 19:09:09
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 18:05