Php 变量中的双qoutes导致javascript错误

Php 变量中的双qoutes导致javascript错误,php,javascript,Php,Javascript,在我下面的代码中,当$artist或$title变量包含“时,会导致JavaScript命令中断 除了addslashes()之外,还有其他方法可以对其进行编码以修复此问题吗 $artist = addslashes($row['artist']); $title = addslashes($row['title']); echo '<div class="play" style="display: inline"><a href="javascript:pl

在我下面的代码中,当
$artist
$title
变量包含“时,会导致JavaScript命令中断

除了addslashes()之外,还有其他方法可以对其进行编码以修复此问题吗

$artist = addslashes($row['artist']);
    $title = addslashes($row['title']);

    echo '<div class="play" style="display: inline"><a href="javascript:playSong'."('$artist','$title','$row[file]','$row[id]')".'">
$artist=addslashes($row['artist']);
$title=addslashes($row['title']);
回声'

您可以尝试
urlencode()
您可以考虑对变量进行url编码,如

$artist = rawurlencode($row['artist']);
$title = rawurlencode($row['title']);

echo "..... playSong(unescape('$artist'), unescape('$title')... ";
或者将解码移到播放歌曲功能中

//编辑:这就是你获得正确报价的方式

echo "<div class='play' style='display: inline'><a href=\"javascript:playSong(unescape('$artist'),unescape('$title'),'$row[file]','$row[id]')\">....";
echo“…”;
试试这个

echo'

问题是如果有“在回音中”;它破坏了JavaScript命令,但显示错误。我想我需要正确地封装变量。我格式化了你的代码,因为标签被去掉了<代码>回音“”让我很开心