RSSに表示されているデータにhtmlentitiesを使用し、ユニコード文字を持っているのでÁ
などのサービスはhttp://feedvalidator.org/のように表示されます。RSSフィードにhtml entitesを追加するには
は、どのように私は(名前空間を使用してのように)XMLにこのエンティティを追加することができますか私は& < >
のような文字をエスケープするためにさまざまな機能を使用する必要がありますか?
RSSに表示されているデータにhtmlentitiesを使用し、ユニコード文字を持っているのでÁ
などのサービスはhttp://feedvalidator.org/のように表示されます。RSSフィードにhtml entitesを追加するには
は、どのように私は(名前空間を使用してのように)XMLにこのエンティティを追加することができますか私は& < >
のような文字をエスケープするためにさまざまな機能を使用する必要がありますか?
は、PHP 5.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;
}
htmlspecialchars
を使用して、XMLで特別な意味を持つ文字をエスケープします。
他の文字には適切な文字エンコードを使用してください。
(htmlentities
のドキュメントをスキミングすると、ENT_XML1
を渡し、適切な文字エンコーディングを使用しない場合はXML互換の数値エンティティを取得できることが示唆されています)。ここで
おかげで仕事関数であるが、私は、PHP 5.3.3を持っているとENT_XML1が5.4に加え、はhtmlspecialcharsは私が文書を持っている場合でも、無効としてユニコードのcharacersとバリのショーを残します'encoding =" utf-8 "' – jcubic
@jcubic:そのエラーと出力を生成するために使用しているコードの詳細を投稿してください。 'htmlspecialchars'はXMLを生成するのに十分です。非ASCII文字をエスケープする必要はありません。 – bobince
私はそれを修正したので記憶しませんが、キャラクタ '?a'(バリデータ)をデコードできないようなものが表示されます。 – jcubic