首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中转义双引号(Wordpress)

问在PHP中转义双引号(Wordpress)
EN

Stack Overflow用户
提问于 2012-01-20 01:03:37
回答 3查看 2.3K关注 0票数 0

我在使用PHP addslashes函数转义双引号时遇到了困难。如果我运行:

代码语言:javascript
复制
$name = addslashes(get_the_title());

并且标题中有双引号,则输出中仍然有双引号,没有任何转义字符。

例如:“欢迎多元化”移民论坛

我正在尝试将Wordpress数据插入到.ICS文件生成器中,但我无法找到一种方法来成功地将Wordpress数据解析为与ICS格式兼容的格式。

解决方案:我的解决方案是使用$post->post_title来绕过Wordpress函数get_the_title()。一旦我切换到地址斜杠,转义就能正常工作。

EN

回答 3

Stack Overflow用户

发布于 2012-01-20 01:06:40

也许trim能帮上忙(用来美化常规的引号):

代码语言:javascript
复制
$name = addslashes(trim(get_the_title(), '"'));

对于其他类型的引用,您可以尝试使用正则表达式。类似于:

代码语言:javascript
复制
$title = preg_replace("/[\'\"\”\“]+/";, '', get_the_title());
$name = addslashes($title);
票数 0
EN

Stack Overflow用户

发布于 2012-01-20 01:17:13

如果引号没有被转义,那么它们就不是真正的双引号。您的字符串可能是多字节字符集,或者它们是“花哨的引号”。

此函数通常会对以下内容进行排序:

代码语言:javascript
复制
function convert_fancy_quotes ($str) {
  return str_replace(array(chr(145),chr(146),chr(147),chr(148),chr(151)),array("'","'",'"','"','-'),$str);
}

所以试试吧:

代码语言:javascript
复制
$name = addslashes(convert_fancy_quotes(get_the_title()));

...although如果这就是问题所在,他们可能无论如何都不需要转义,这取决于你对结果做了什么。

票数 0
EN

Stack Overflow用户

发布于 2012-01-20 01:26:38

卷曲的引号绝对是需要检查的东西。您可能还想检查要发送到的函数的预期输入。addslashes()函数肯定会添加转义字符,但是如果您将该输出发送到另一个删除它们的函数中,这可能会使斜杠看起来没有被转义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8930160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档