遇到一个头痛的单双引号问题,有许多标签,从数据库里调出。放到一个 <a Onclick="javascript('$tags')">里。如何处理单双引号?用addslashes,只有single s的链接可以传递,另外2种超链均被破坏。尝试 "\\\"double s\\\"" 也无效。问如解决?为了方便,把数据库里调出的几种情况存为一个数组进行测试。<?php
header("Content-Type: text/html; charset=utf-8");
//$names 来自数据库
$names = array("\"double s\"","'single s'","\"'Mix both'\"");
print('<li><a href="javascript:void(0)" OnClick="javascript(\''.addslashes($names[0]).'\')">'.$names[0].'</a></li>');
print('<li><a href="javascript:void(0)" OnClick="javascript(\''.addslashes($names[1]).'\')">'.$names[1].'</a></li>');
print('<li><a href="javascript:void(0)" OnClick="javascript(\''.addslashes($names[2]).'\')">'.$names[2].'</a></li>');
?>
<?php echo $_POST['javascript']; ?>
<div id="tags"></div>
header("Content-Type: text/html; charset=utf-8");
//$names 来自数据库
$names = array("\"double s\"","'single s'","\"'Mix both'\"");
print('<li><a href="javascript:void(0)" OnClick="javascript(\''.addslashes($names[0]).'\')">'.$names[0].'</a></li>');
print('<li><a href="javascript:void(0)" OnClick="javascript(\''.addslashes($names[1]).'\')">'.$names[1].'</a></li>');
print('<li><a href="javascript:void(0)" OnClick="javascript(\''.addslashes($names[2]).'\')">'.$names[2].'</a></li>');
?>
<?php echo $_POST['javascript']; ?>
<div id="tags"></div>
print('<li><a href="javascript:void(0)" OnClick="javascript(\''.$v.'\')">'.$v.'</a></li>').PHP_EOL;
<li><a href="javascript:void(0)" OnClick="javascript('double s')">double s</a></li>
<li><a href="javascript:void(0)" OnClick="javascript('single s')">single s</a></li>
<li><a href="javascript:void(0)" OnClick="javascript('Mix both')">Mix both</a></li>
<li><a href="javascript:void(0)" OnClick="javascript('addslashes($names[0])')">'$names[0]'</a></li>
EOT;
print($link);
还是用str_ireplace,换成" 和 ' ?