3

私はいくつかのビデオを表示するには、jPlayerを使用していますが、私はPHPのforeach文でその場でプレイリストを作成します。JavaScriptからPHPのテキストをエスケープする方法は?

var playlistacting = 
      [ 
     <?php foreach($this->result as $val){?> 
       { 
        title: '<?php echo $val->getTitle();?>', 
        artist: '<?php echo $val->getDes();?>', 
        poster: "<?php echo $val->getVideoId();?>.jpg", 
        thumb: "<?php echo $val->getVideoId();?>.jpg", 
        flv: "<?php echo $val->getVideoId();?>.flv", 
       }, 
     <?php }?> 
]; 

$val->getDes()例はI have a one-hour (approximately) solo musical revue called "Manhattan With A Twist". The entire...

私が手にエラーが

unterminated string literal 
[Break On This Error] 

artist: 'I have a one-hour (approximately)solo musical revue called "Manhattan W... 

jquery.js (line 2, col 32) 
あるだろう

となり、文字列の先頭には'が入ります。 title: "<?php echo htmlspecialchars($val->getTitle());?>",

を、私はしかし"の代わり'と同じエラーが発生します。

私はこれを行うことができます。

ここで何が起こっているのかわかりません。 'がエスケープされていないか、何か不満がありますか?

アイデア?

+3

あなたは[ 'json_encode()'](http://php.net/manual/en/function.json-encode.php)を使用して検討していますか? – NullUserException

+1

または 'addslashes()'? – Phix

+0

hmmm、それを試してみましょう – Patrioticcow

答えて

4

単にjson_encodeを使用します。

var playlistacting = <?php echo json_encode($this->result);?>; 
+0

それは働いた。どうして? – Patrioticcow

+0

どうしてそうではありませんか? –

+0

配列で使用するのが分かりますが、なぜこの文字列で作業しているのですか? – Patrioticcow

関連する問題