質問: str_replace( ']]>', ']]>', $example ); ``` ### 試したこと 検索すると正規表現における]は文字クラス定義の終了などの 解説が出てきましたが、上記ソースの場合よくわかりませんでした。 自分なりの予想として上記ソースは $exampleの中の>を>に置換するということになるのでしょうか? それであれば単純に'>', '>'でもよさそうな感じもします。 ]]の意味は何なのでしょうか。 ### 補足情報(言語/FW/ツール等のバージョンなど) $exampleにはhtmlが入ります。
回答: `]]>`という表記は、XML(やXHTML)で特別な意味を持っています。 XHTMLにJavaScriptを混ぜる場合に、不等号やアンド記号が現れると複雑な挙動となってしまうので、**CDATAセクション**というものを使います。これは、``で終わらせるまで、不等号やアンドも普通の文字とみなす、という機能です。 そのあたりを避けるために、`]]>`の`>`だけ置き換え対象にする、ということでしょう。