首页 文章

在PHP中转义双引号(Wordpress)

提问于
浏览
0

我在使用PHP addslashes函数转义双引号时遇到困难 . 如果我跑:

$name = addslashes(get_the_title());

并且 Headers 中有双引号,输出仍然有双引号,没有任何转义字符 .

例如 . “欢迎多样性”移民论坛

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

解决方案:我的解决方案是通过使用$ post-> post_title来绕过Wordpress函数get_the_title() . 切换后,使用addslashes可以正常进行转义 .

3 回答

  • 0

    也许trim帮助(用于scaping常规报价):

    $name = addslashes(trim(get_the_title(), '"'));
    

    对于其他类型的引号,您可以尝试使用正则表达式 . 就像是:

    $title = preg_replace("/[\'\"\”\“]+/";, '', get_the_title());
    $name = addslashes($title);
    
  • 0

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

    这个函数经常对此进行排序:

    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()));
    

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

  • 0

    卷曲的引号绝对值得检查 . 您还可能想要检查要发送到的函数的预期输入 . addslashes()函数肯定会添加转义字符,但如果您将该输出发送到另一个删除它们的函数,则可能会使得斜杠不会被转义 .

相关问题