PHPのhtmlspecialchars関数でエンコードしてもJavaScriptエラーが出る件 
2024/07/30 Tue.
例えば
<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));
<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
この記事へのコメント
コメントの投稿
コメントは全て管理人が内容を確認してから表示されます(非公開コメント除く)。
内容によっては表示されない場合がありますことご了承願います。
内容によっては表示されない場合がありますことご了承願います。
![[GIIPET]犬 服 夏 冷感ベスト 小型犬 クールメッシュ ハーネス付き 犬服 ひんやり通気 冷却ウェア 猫兼用 冷感アイスシルク メッシュ 通気速乾 暑さ対策 散歩用 XS-2XL 1枚](https://m.media-amazon.com/images/I/71MWUolUARL._AC_SL1500_.jpg)
