Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dziwne kodowanie, preg_match() nie działa
Forum PHP.pl > Forum > PHP
Compiler
Witam,

Mam problem ponieważ posiadam plik txt o dziwnym kodowaniu. Chyba z Linuxa. Oczywi¶cie mogę go odczytać, ale miejscami s± znaki typu : # ¨£ .
Problem jest taki, że wyszukuję wzorca w tym pliku funkcj±:
  1. preg_match('/[0-9]{2}-[0-9]{3}/', $linia, $wyniki)


I nie znajduje mi kodu pocztowego.Wy¶wietlaj±c linie z kodem w przegl±darce dostaję:
5�2�-�1�6�2� �

Czy kto¶ wie co zrobić, żeby to działało?
altruista2
W takim razie po prostu zamień to na:
  1. str_replace('?','',preg_match('/[0-9]{2}-[0-9]{3}/', $linia, $wyniki))


- z tym że wypadałoby ten znaczek "?" podawać jako chr

a je¶li występuj± inne znaczki niż ten jeden to zrób tak:
  1. function wyczysc($str) {
  2. $alfabet = '0123456789-';
  3. $ret = '';
  4. $max = strlen($str);
  5. for($i=0;$i<$max;$i++) {
  6. $ch = substr($str,$i,1);
  7. if(strpos($alfabet, $ch) !== false) $ret .= $ch;
  8. }
  9. return $ret;
  10. }
  11.  
  12. wyczysc(preg_match('/[0-9]{2}-[0-9]{3}/', $linia, $wyniki));
Compiler
Niestety nic to nie daje. Dziwne ;/ edit: a jaki to char - ? questionmark.gif smile.gif
Jakby kto¶ chciał podejrzeć plik to - http://www.przeklej.pl/plik/fdssd-rar-0009gr0815a5
Mam jeszcze pytanie odno¶nie rename() dostaję Permission denied.
Dodam iż robię to w windowsie na xampp i nie mam ustawionych atrybutów tylko do odczytu.
altruista2
Użyj tej funkcji do wyczyszcenia:
  1. function wyczysc($str) {
  2. $alfabet = '0123456789-abcdefghijklmnoprstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZq±ęćłń¶óżĽˇĘƣѦӯ¬ -=[];,.<>:"{}1234567890!@#$%^&*()';
  3. $max = strlen($str);
  4. for($i=0;$i<$max;$i++) {
  5. $ch = substr($str,$i,1);
  6. if(strpos($alfabet, $ch) !== false) $ret .= $ch;
  7. }
  8. return $ret;
  9. }


A potem będzie z górki smile.gif)
Compiler
Dzięki działa exclamation.gif smile.gif
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.