PHPでJavascriptテキストをエスケープするための最良の方法を探していますjson_encode
が、これはその仕事には間違ったツールです。
問題はこの行から来ています:
echo " onclick=\"SwitchDiv('" . $option . "')\"";
にアポストロフィがある場合$option
、これはクライアント側の失敗のジューシーなボールです。ただし、ストレートを実行してjson_encode
も(他のコンテキストでは完全に機能します)、役に立ちません。
echo " onclick=\"SwitchDiv(" . json_encode($option) . ")\"";
これにより、の出力文字列が作成され、値onclick="SwitchDiv("athlete's foot")"
が早期に終了しonclick
ます。(これは、onclick
値を一重引用符で囲んだ場合にも発生します。)
これを回避するエレガントな方法はありますか?json_encode
一重引用符をエスケープする正規表現を介して出力をファネルする必要がありますか?