SOLVALOU

blog

Atomフィードつくってて、CDATAってどうやってエスケープするんだろうと思って調べてみた。ら、意外と複雑だった。

Hence, it is not possible to escape ]]> within a CDATA section. http://stackoverflow.com/questions/223652/is-there-a-way-to-escape-a-cdata-end-token-in-xml

CDATAの閉じタグ]]>はエスケープできないらしい。

全ての]]>]]]]><![CDATA[>に置き換える。 http://d.hatena.ne.jp/holidays-l/20101210/p1

ということで、置換のメソッドはこんな感じ。

public static function cdata($value)
{
    $value = str_replace(']]>', ']]]]><![CDATA[>', $value);
    return sprintf('<![CDATA[%s]]>', $value);
}
LOADING
Fork me on GitHub