我想我在这里遗漏了一些明显的东西,但它让我发疯,我无法弄明白。我正在开发一个WordPress插件,其中一部分需要获取WordPress帖子标题并将其发送到RESTful Web服务以执行其他操作。所以当然我想要rawurlencode()帖子标题,因为谁知道那里可能有什么文字。但是,出于某种原因,我得到的输出有额外的转义字符,我不知道它们来自哪里(并且它导致了我正在调用的Web服务的问题)。
我的代码非常简单:
$topic = get_the_title($post_id);
$curl_post_fields = 'name=' . rawurlencode( $topic );
然而,当我打印出这两个字符串的输出时,我得到了:
topic=a & b
name=a%20%26%23038%3B%20b
我希望URL编码的字符串是
name=a%20%26%20b
我不知道额外的%23038%3B可能来自哪里。如果我正确地读取编码,则转换为#038;但我仍然不知道它来自哪里。
答案 0 :(得分:2)
中间似乎还有一个html编码,而不是&
,&
位于编码字符串中。可能是因为&必须在html中进行转义,get_title函数使用html_special_chars
或类似的东西来转义它。
答案 1 :(得分:0)
当我使用较旧的php版本时,我遇到了一些问题