0

現在、JavaScript内のテキストファイルの内容をエコーし​​ようとしています。すべてが機能しますが、問題があります。テキスト内のテキストにはアポストロフィが含まれています。以下は私が使用しているコードの一部です。私はこのコードを多くのテキストファイルに使用しています。各テキストファイルで各アポストロフィを「\'」に変更することを検討しましたが、処理するテキストファイルはたくさんあります。これを回避する別の方法があるかどうか、私はただ興味がありました。どんなアイデアでも大歓迎です。

<?php
     $lyrics = file_get_contents('Includes/Songs/Lose_My_Mind.txt');
?>

JavaScriptスニペット:

var scrollercontent='<?php echo $lyrics; ?>'
4

7 に答える 7

4

ほとんどaddslashesは機能しますが、これはより優れています。

var scrollercontent= <?php echo json_encode($lyrics, JSON_HEX_TAG); ?>;

json_encode文字列だけでなく、すべてのデータ型で機能します。文字列の場合、横に引用符が追加され、改行文字などの制御コードを含むすべての文字で機能します。

JSON_HEXPHP5.3の機能です。は、のようなJavaScript文字列リテラルエンコーディングにHEX_TAG置き換えられます。つまり、スクリプトブロックを途中で終了するシーケンスが含まれている可能性があることを心配せずに、任意の文字列リテラルをブロックに入れることができます。(それだけでも技術的には無効です。)<\x3C<script></script></

于 2009-12-12T14:39:18.067 に答える
2

addlashes()関数を使用してみてください。あなたの場合:

var scrollercontent='<?php echo addslashes($lyrics); ?>'
于 2009-12-12T13:39:53.667 に答える
1

試す

addslashes(nl2br($lyrics))

(改行をタグnl2brに置き換えます。)<br>

于 2009-12-12T16:03:10.390 に答える
0

これを変更してみてください

var scrollercontent='<?php echo $lyrics; ?>'

これに

var scrollercontent='<?php echo addslashes($lyrics); ?>'

また

var scrollercontent='<?php echo htmlentities($lyrics); ?>'

これらは、引用などを逃れたり、誘惑したりするのに役立つはずです...

于 2009-12-12T13:40:33.537 に答える
0

やってみました:

<?php $lyrics = addslashes(file_get_contents('Includes/Songs/Lose_My_Mind.txt')); ?>

于 2009-12-12T13:41:55.207 に答える
0

file_get_contentsコマンドの後に次の行を追加できます。

$lyrics = str_replace("\'","\\'",$lyrics);

これにより、単一のアポストロフィがすべてエスケープされたアポストロフィに変更され、Javascript とうまく連携するはずです。

于 2009-12-13T02:39:53.743 に答える
0
<?php
$lyrics = nl2br(htmlentities(file_get_contents('Includes/Songs/Lose_My_Mind.txt'), ENT_QUOTES)); 
?>
var scrollercontent="<?php echo $lyrics; ?>";
于 2009-12-13T02:56:32.930 に答える