3

javascript 変数に挿入する必要があるいくつかの html/text 文字列を取り出します。

たとえば、php では次のようになります。

echo "<script type=\"text/javascript\">\n";
echo "var myvar='{$value}'";
echo "\n</script>";

上記のアプローチの問題は、一部の特殊文字が実際に JavaScript コードを壊してしまうことです。

そこで、htmlspecialchars を使ってみました:

htmlspecialchars($value,11,'utf-8',true); //11 stands for ENT_QUOTES|ENT_SUBSTITUTE

これにより、いくつかの異常な文字と最も重要な引用符が置き換えられました。

ただし、改行文字はそれを通り過ぎて、JavaScript を壊します。

では、どうすれば改行文字をエスケープできますか? 後でテキストエリアで使用できるように保存する必要があります。

*編集*変数のサンプル値を投稿します。(実際には Tiny_mce からの入力です)

 <p>You've been...</p>
 <p><iframe src="http://www.youtube.com/embed/8d7OBluielc?wmode=transparent" frameborder="0" width="640" height="360"></iframe></p>
4

1 に答える 1

11
<script type="text/javascript">
    var myvar = <?php echo json_encode($value); ?>;
</script>

JSON == Javascript 表記 == Javascript に出力される値の適切なエンコード/エスケープ方法。

于 2012-08-18T08:43:13.973 に答える