Php ile xml dosyadan hex karakterleri Çıkarma

0 Cevap php

Yani XML dosyaları bir dizi var, başlamak için. Bu dosyalar iterated ve bazı 'tanınmayan' onaltılık karakterleri için kontrol ve normal UTF-8 metin veya yer tutucu çeşit ile değiştirilmesi gerekir.

Ben dosyaları yineleme ve hayır şans ile str_replace ve preg_replace ikisini de kullanarak hex kodlarını değiştirerek denedim. Benim nihai problemi, SimpleXML ile bu dosyaları açmaya çalışırken ben 'non-utf karakterler' hakkında hataları alıyorum olduğunu.

İşte ben bugüne kadar ne var:

class HexadecimalConverter {

    public $filenames = array();

    public function __construct($filenames) {

        $this->filenames = $filenames;
        $this->removeHex();

    }

    public function removeHex() {

        foreach ($this->filenames as $key => $value) {

            $contents = file_get_contents($value);

            $contents = preg_replace("/\x96/", '–', $contents);
            $contents = preg_replace("/\x97/", '—', $contents);
            $contents = preg_replace("/\x85/", "...", $contents);
            $contents = preg_replace("/\xBA/", "", $contents);

            file_put_contents($value, $contents);

        }

    }

}

İşte düzeltmek için çalışıyorum hata: Warning: simplexml_load_file () [function.simplexml-load-file]: ./04R_P455_S1157.xml: 5: ayrıştırıcı hatası: Input doğru UTF-8 değil, kodlamayı göstermek! Bit: C 0x97 0x0D 0x0A 0x69: \ xampp \ htdocs \ hint_updater \ \ hint_updater_classes.php kütüphaneler satırda 130

Hala hiçbir şans, Ben bu konuya önerilen her şeyi denedim, ama preg_replace hex kodunun tüm örneklerini yerine olmak görünmüyor.

0 Cevap