8

私は他の人のウェブサイトで作業していますが、非常にばかげたロジックを持っています! とにかく、データベースからの文字列を含むphp変数があります。

$x = ' aaaa
bbb

ccc


gggg ';

そして、この文字列を JavaScript 関数に渡す必要があります。

<script>

var x = "<?php echo $x ; ?>";
some_function(x);

</script>

ご存知のように、javascript 変数には次のように結合しないと複数の行を含めることができないため、エラーが発生します。

var x = ' i '+
        ' have '+
        ' different lines'; 

これどうやってするの?行を削除するか、適切にフォーマットするかは問題ではありません。このエラーを取り除きたいだけです。

4

4 に答える 4

20

文字列をjson_encodeに渡して、適切にエスケープします。HTML ドキュメントに出力する場合は、必ずJSON_HEX_TAGオプションの一部として渡して、悪意のあるユーザーがタグを早期に終了して XSS エクスプロイトを導入することを回避<して防止してください。></script>

于 2013-05-20T23:58:55.413 に答える
4

これを試して

var JsString = "<?php 
echo str_replace(array("\n","\r","\r\n"),'','YOUR 
MULTI LINE 
STRING');?>";
于 2014-07-08T13:29:07.673 に答える
-1

js に出力する前に、適切なエスケープ文字を使用して文字列に変換します。

于 2013-05-21T00:01:03.547 に答える