如何在JavaScript中转义来自PHP的文本?

我正在使用jPlayer来显示一些视频,并在php foreach语句中动态创建播放列表:

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()的例子是我有一个小时(大约)的音乐剧单曲,叫做“ Manhattan With A Twist”.整个…

我得到的错误是

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());?>”,

并且我将得到相同的错误,但是用“代替”.

我不确定这里发生了什么.是在抱怨“没有逃脱”还是什么?

有任何想法吗?

解决方法:

只需使用json_encode:

var playlistacting = <?php echo json_encode($this->result);?>;
上一篇:C#-函数的名称是什么,与HttpUtility.JavaScriptStringEncode相反?


下一篇:转义knex mysql查询语句