我在使用PHP addslashes函数转义双引号时遇到了困难。如果我运行:
$name = addslashes(get_the_title());并且标题中有双引号,则输出中仍然有双引号,没有任何转义字符。
例如:“欢迎多元化”移民论坛
我正在尝试将Wordpress数据插入到.ICS文件生成器中,但我无法找到一种方法来成功地将Wordpress数据解析为与ICS格式兼容的格式。
解决方案:我的解决方案是使用$post->post_title来绕过Wordpress函数get_the_title()。一旦我切换到地址斜杠,转义就能正常工作。
发布于 2012-01-20 01:06:40
也许trim能帮上忙(用来美化常规的引号):
$name = addslashes(trim(get_the_title(), '"'));对于其他类型的引用,您可以尝试使用正则表达式。类似于:
$title = preg_replace("/[\'\"\”\“]+/";, '', get_the_title());
$name = addslashes($title);发布于 2012-01-20 01:17:13
如果引号没有被转义,那么它们就不是真正的双引号。您的字符串可能是多字节字符集,或者它们是“花哨的引号”。
此函数通常会对以下内容进行排序:
function convert_fancy_quotes ($str) {
return str_replace(array(chr(145),chr(146),chr(147),chr(148),chr(151)),array("'","'",'"','"','-'),$str);
}所以试试吧:
$name = addslashes(convert_fancy_quotes(get_the_title()));...although如果这就是问题所在,他们可能无论如何都不需要转义,这取决于你对结果做了什么。
发布于 2012-01-20 01:26:38
卷曲的引号绝对是需要检查的东西。您可能还想检查要发送到的函数的预期输入。addslashes()函数肯定会添加转义字符,但是如果您将该输出发送到另一个删除它们的函数中,这可能会使斜杠看起来没有被转义。
https://stackoverflow.com/questions/8930160
复制相似问题