Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne]Zmiana kodowania znaków
d.stp
post
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


Mam stronę na której są wczytywane pliki .txt, które zawierają jakiś tekst + html. Wszystkie pliki są zapisane w złym kodowaniu i przez to nie ma polskich znaków. Dla testów zmieniłem kodowanie pliku na utf-8 bez bom i problem zniknął, ale tam jest ponad 50 plików z min. 50 linijkami tekstu i nie wyobrażam sobie ręcznie to poprawiać. W plikach są już skopane znaki

Jest jakaś funkcja w php albo konwerter, który mi to automatycznie zamieni dziwne znaki na polskie + zmieni kodowanie pliku?

z góry dzięki za odp

Ten post edytował d.stp 8.10.2012, 16:19:52
Go to the top of the page
+Quote Post
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


http://www.php.net/manual/en/function.iconv.php
http://linux.about.com/library/cmd/blcmdl1_iconv.htm
Go to the top of the page
+Quote Post
darko
post
Post #3





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


może np. tak (moje, ale nie testowałem czy działa):
  1. $path = 'c:\\xampp\\htdocs\\robocze';
  2. $counter = 0;
  3. $changedCounter = 0;
  4. $it = new RecursiveDirectoryIterator($path);
  5. foreach(new RecursiveIteratorIterator($it) as $file)
  6. {
  7. if(is_file($file))
  8. {
  9. $dat = file_get_contents($file);
  10. $encoding = mb_detect_encoding($dat);
  11. if($encoding != 'UTF-8')
  12. {
  13. file_put_contents($file, utf8_encode($dat));
  14. $changedCounter++;
  15. }
  16. $counter++;
  17. }
  18. }
  19.  
  20. echo $counter . ' files found, ' . $changedCounter . ' affected';
Go to the top of the page
+Quote Post
L00zak
post
Post #4





Grupa: Zarejestrowani
Postów: 58
Pomógł: 5
Dołączył: 2.05.2006

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


  1. $text=iconv('utf-8','iso-8859-2',$text);
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 5.10.2025 - 00:03