시작하려면 XML 파일 배열을 가지고 있습니다. 이러한 파일은 반복되고 16 진수 문자가 인식되지 않는지 확인해야하며 일반 UTF-8 텍스트 또는 일부 자리 표시 자로 바뀝니다.PHP로 xml 파일에서 16 진수 문자 제거하기
나는 파일을 반복하고 str_replace와 preg_replace를 모두 사용하여 16 진수 코드를 행운으로 대체하려고 시도했다. 나의 궁극적 인 문제는, 나는 simpleXML로이 파일들을 열려고 할 때 'non-utf characters'에 관한 에러를 받는다. 경고 : 여기
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);
}
}
}
는 내가 해결하기 위해 노력하고있어 오류입니다 : 여기
내가 지금까지 가지고 무엇 simplexml_load_file() [function.simplexml로드 파일] : ./04R_P455_S1157.xml : 5 : 파서 오류 : 입력이 적절하지 않습니다. UTF-8, 인코딩을 나타냅니다! 바이트 : 0x97 0x0A 0x69 C : \ xampp \ htdocs \ hint_updater \ libraries \ hint_updater_classes.php on line 130
아직도이 행에서 제안 된 모든 것을 시도했지만 preg_replace가 나타나지 않습니다. 16 진수 코드의 모든 인스턴스를 교체해야합니다.
나는 그것을 얻지 않는다. XML 파일의 현재 모습을 보여줄 수 있습니까? – Artefacto
xml 파일은 구조가 잘 맞지 않습니다 ...하지만 사람들은 불법 문자를 복사하여 파일에 붙여 넣어 파일에서 원하지 않는 16 진수 코드를 생성하는 방법을 알고 있습니다. – ThinkingInBits
XML 파일은 4000 줄 이상의 데이터가 될 수 있으므로 큰 파일입니다. – ThinkingInBits