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一重引用符をエスケープする正規表現を介して出力をファネルする必要がありますか?