SOAP 웹 서비스에 XML 문서를 보내야합니다 (제어 할 권한이 없습니다). 본문은 HTML 엔티티를 포함하기 때문에 나는 오류가 발생했다, 그래서 나는 html_entity_decode()
와 텍스트의 문자열을 청소하고 htmlspecialchars()
을 내가 SimpleXML을 객체에 텍스트를 추가하기 전에, 다음과 같이 :PHP를 통해 XML 문서의 16 진수 엔티티를 깨끗이합니다.
if(!mb_detect_encoding($string, "UTF-8") == "UTF-8") {
$string = utf8_encode($string);
}
$string = htmlspecialchars(html_entity_decode($string, ENT_COMPAT, 'UTF-8'), ENT_COMPAT, 'UTF-8');
$xml->addChild('PROD_DESC', $string);
을하지만라는 이름의 실체를 청소하지만, 형태가 ©
이라면, á
과 같은 16 진수 엔티티가 없으며, 내가 말하는 서비스도 그 중 하나를 받아들이지 않습니다.
In this post 가능한 해결책을 찾았지만, 그 문자열을 깔끔한 정리 문자열 함수에 전달할 때 동일한 문자열을 얻었지만 그 엔티티는 접촉하지 않습니다.
[PHP의 가능한 중복 : 나는 UTF-8은 그것의 16 진수 표기를 기록 작성하려고 할 때마다있는 DOMDocument를 사용하여. ] (http://stackoverflow.com/questions/3575109/php-using-domdocument-whenever-i-try-to-write-utf-8-it-writes-the-hexadecimal-no) – Gordon
예, 죄송합니다, 저는 그걸 보지 못했습니다. 당신은 거기에서 좋은 설명을했습니다. – AJJ