如何仅转义单引号?

83

我正在编写一些使用 PHP 渲染的 JavaScript 代码。如何在我的 PHP 字符串中转义单引号(仅限单引号)?

<script type="text/javascript">
    $('#myElement').html('say hello to <?php echo $mystringWithSingleQuotes ?>');
</script>

8
你需要转义的不仅仅是单引号,还包括换行符等。你可以使用 addcslashes($mystringWithSingleQuotes, "'\"\r\n\\\t\0..\37") 这样的代码来实现。 - Frank Farmer
2
不要自己处理转义,使用 json_encode() 来获取有效的 Javascript 字符串(并删除外部单引号)。 - mario
1
@Frank:你能把你的回答发表为一个答案而不是评论吗?在评论中发布正确的答案无法被选择,因此会产生虚假的“未回答问题”。 - Sylverdrag
为什么不能在 .html() 中直接使用双引号而不用单引号包装?无论如何,PHP 扩展都会发生。我一直在做这个,从元素属性和导入到脚本块内的变量赋值。 - Mark Carpenter Jr
11个回答

0

这是我是如何做到的。有点傻,但很简单。

$singlequote = "'";
$picturefile = getProductPicture($id);

echo showPicture('.$singlequote.$picturefile.$singlequote.');

我正在处理输出调用JavaScript代码以显示图片的HTML...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接