RSSに表示されているデータにhtmlentitiesを使用し、Unicode文字を使用しているため、http://feedvalidator.org/Á
などのサービスが無効として表示されるようなエンティティを表示します。
このエンティティをxmlに追加するにはどうすればよいですか(名前空間を使用するなど)、または別の関数を使用して次のような文字をエスケープする必要があり& < >
ますか?
RSSに表示されているデータにhtmlentitiesを使用し、Unicode文字を使用しているため、http://feedvalidator.org/Á
などのサービスが無効として表示されるようなエンティティを表示します。
このエンティティをxmlに追加するにはどうすればよいですか(名前空間を使用するなど)、または別の関数を使用して次のような文字をエスケープする必要があり& < >
ますか?
htmlspecialchars
XMLで特別な意味を持つ文字をエスケープするために使用します。
他の文字には適切な文字エンコードを使用してください。
(のドキュメントをざっと読むと、適切な文字エンコードを使用しない場合は、XML互換の数値エンティティをhtmlentities
渡して取得できることがわかります)。ENT_XML1
これが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;
}