0

RSSに表示されているデータにhtmlentitiesを使用し、Unicode文字を使用しているため、http://feedvalidator.org/Áなどのサービスが無効として表示されるようなエンティティを表示します。

このエンティティをxmlに追加するにはどうすればよいですか(名前空間を使用するなど)、または別の関数を使用して次のような文字をエスケープする必要があり& < >ますか?

4

2 に答える 2

2

htmlspecialcharsXMLで特別な意味を持つ文字をエスケープするために使用します。

他の文字には適切な文字エンコードを使用してください。

(のドキュメントをざっと読むと、適切な文字エンコードを使用しない場合は、XML互換の数値エンティティをhtmlentities渡して取得できることがわかります)。ENT_XML1

于 2012-04-27T18:43:17.010 に答える
2

これがphp5.3.3で動作する関数です

function encode($string) {
    $result = '';
    foreach (str_split(utf8_decode(htmlspecialchars($string))) as $char) {
        $num = ord($char);
        if ($num > 127) {
            $result .= '&#' . $num . ';';
        } else {
            $result .= $char;
        }
    }
    return $result;
}
于 2012-04-28T09:43:02.877 に答える