php URL编码错误

时间:2013-06-13 22:20:19

标签: php

我的代码中有以下行

$lib  = simplexml_load_file("http://www.goodreads.com/book/title.xml?key=MYAPIKEY&title=" . $current_book,null,true);

发送时,它会像这样发送

http://www.goodreads.com/book/title.xml?key=MYAPIKEY&title=Dashing%2BThrough%2Bthe%2BSnow%2BMary%2BHiggins%2BClark%0A

发生这种情况时,找不到该书并返回错误。 。 。

但是,如果我输入我的浏览器

http://www.goodreads.com/book/title.xml?key=MYAPIKEY&title=Dashing+Through+the+Snow+Mary+Higgins+Clark

然后我得到一个有效的XML响应,我可以使用它来完成我的代码。

那么,如果不将+更改为%2B,我该如何发送?

网址末尾的%0A是什么?

1 个答案:

答案 0 :(得分:0)

您的网址似乎被编码了两次。

由于您在所显示的代码中完全没有编码(通过这样做的方式),它必须在之前发生过。

错误不在此代码中,而是在此之前的某处。

你可以这样纠正:

$lib  = simplexml_load_file("http://www.goodreads.com/book/title.xml?key=MYAPIKEY&title=" . trim(urldecode($current_book)),null,true);

但是,这只是现有错误的解决方法,您应该修复先前的编码。

你提到的角色也是换行符,这就是修剪的原因