Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][xml] Kodowanie - problem
Gaw
post 4.12.2007, 19:28:47
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 27.11.2006

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


witam,
mam plik XML (generowany dynamicznie - czytajac dane z bazy MySQL).
nastepnie za pomoca skryptu php odczytuje XML.
problem ze w stringach czasami mam znaki ® lub ™ zapisane jako "®" oraz "™" - powoduje to wywalenie sie XML, nie wiem czemu. skorzystalem z funkcji ktora "®" itp zamieni mi na normalne znaki.

uzylem funkcji
  1. <?php
  2. function html_entity_decode_utf8($string)
  3. {
  4. static $trans_tbl;
  5.  
  6. // replace numeric entities
  7. $string = preg_replace('~&#x([0-9a-f]+);~ei', 'code2utf(hexdec("1"))', $string);
  8. $string = preg_replace('~&#([0-9]+);~e', 'code2utf(1)', $string);
  9.  
  10. // replace literal entities
  11. if (!isset($trans_tbl))
  12. {
  13. $trans_tbl = array();
  14.  
  15. foreach (get_html_translation_table(HTML_ENTITIES) as $val=>$key)
  16. $trans_tbl[$key] = utf8_encode($val);
  17. }
  18.  
  19. return strtr($string, $trans_tbl);
  20. }
  21.  
  22. // Returns the utf string corresponding to the unicode value (from php.net, courtesy - romans@void.lv)
  23. function code2utf($num)
  24. {
  25. if ($num < 128) return chr($num);
  26. if ($num < 2048) return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
  27. if ($num < 65536) return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
  28. if ($num < 2097152) return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
  29. return '';
  30. }
  31. ?>


funkcja zamienia znaki HTML typu "&reg;" na zwykle znaki, ale konwertuje mi to do UTF-8, a cala strone mam w ISO-8859-2, wiec wywala krzaki. probowalem skonwertowac UTF-8 na ISO ale tez mi nie wychodzilo. 2 dni nad tym siedze.

prosze o jakies wskazowki jak przerobic znaki HTML na zwykle znaki ale w ISO-8859-2.

z gory dziekuje za jakies wskazowki.

pozdr.
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: 13.07.2025 - 09:18