XML文書をSOAP Webサービスに送信する必要があります。テキストは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私は可能な解決策を見つけましたが、その文字列を整頓されたcleanString関数に渡すと、同じ文字列を取得しますが、それらのエンティティにも触れません。
する[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