脱力系備忘録BloG ホーム » JavaScript »PHPのhtmlspecialchars関数でエンコードしてもJavaScriptエラーが出る件

PHPのhtmlspecialchars関数でエンコードしてもJavaScriptエラーが出る件  

例えば
<button type="button" onClick="kansu('{$htmlspecialchars}')">ボタン</button>
というのがあるとします。

PHPの htmlspecialchars() 関数で文字列をエンコードする際、

$htmlspecialchars = htmlspecialchars($mojiretsu, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML5);
でエンコードしたらJavaScriptでエラーが出る。

なんでかなあ?といろいろ試した結果シングルクォートを「'」にエンコードしてもJavaScriptでエラーになるんですね。

なので、JavaScriptに渡す部分だけ別途以下のように書いて書きだしたらうまくいきました。

$htmlspecialchars = str_replace(array('\\', '\''), array('\\\\', '\\\''), htmlspecialchars($mojiretsu, ENT_COMPAT | ENT_HTML5));
関連記事

category: PHP JavaScript

この記事へのコメント

コメントの投稿

非公開コメント

コメントは全て管理人が内容を確認してから表示されます(非公開コメント除く)。
内容によっては表示されない場合がありますことご了承願います。

プロフィール

お問い合わせ

最新記事

最新コメント

▲ Pagetop