Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML + PHP] Niechciane znaki do usunięcia w XML
Forum PHP.pl > Forum > PHP
sniver
Jakiś czas temu natrafiłem na pewien ciąg znaków, który trochę mi bruździ w życiu...

Problem wynika z tego że został dodany jakiś produkt do sklepu z opisem skopiowanym z bliżej nieznanego mi edytora tekstu. To z koleii poskutkowało dodaniem jakiś znaków specjalnych. W mcedit pod konsolą widzę ten znak jako ^B z tłem na czarno. Z koleii w notatniku pod windowsem jako "przechylony daszek":



Jak coś takiego wyeliminować "hurtowo"? Nie ukrywam że od pewnego czasu występuje wiele podobnych "dodatków" i staram się je eliminować, ale zrozumiałem że jest to jakaś "rodzina" dopisków.

Może jakaś wskazówka jak to wyczyścić - to i temu podobne?
Crozin
Mógłbyś przy pomocy wyrażeń regularnych (preg_replace) usunąć z tekstu wszystkie znaki, które należą do następujących grup: znaki kontrolne (te, dla których podano skrót), U+0080 - U+00A0 + wszystkie znaki spoza palety BMP.
sniver
Odgrzebuję temat bo ponownie się z nim zetknąłem.
Być może komuś się przyda - jak ja miałem ten problem to nakierował mnie post crozin'a. Znalazłem gotowe rozwiązanie w pare minut.

Dodaje bo może komuś się przyda smile.gif

  1.  
  2. function utf8_for_xml($string) {
  3. return preg_replace ('/[^\x{0009}\x{000a}\x{000d}\x{0020}-\x{D7FF}\x{E000}-\x{FFFD}]+/u', ' ', $string);
  4. }
  5.  
  6. $plik = 'tmp/zly_i_niedobry_plik.xml';
  7. $file = implode(file($plik ));
  8.  
  9. $string = utf8_for_xml($file);
  10. $string = str_replace(array("&", "&"), array("&", "&"), $string); // W adresach nazw plików wystąpiły znaczki & - z czym simplexml nie potrafił sobie poradzić...
  11.  
  12. $xml = simplexml_load_string($string, null, LIBXML_NOCDATA );
  13.  
  14. echo '<pre>';
  15. var_dump( $xml );
  16. echo '</pre>';
  17.  


Dziękuję - temat może byc do zamknięcia!
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.