0

我的代码中有以下行

$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 的情况下发送此内容?

URL 末尾的 %0A 是什么?

4

1 回答 1

0

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

由于您根本没有在您显示的代码中进行编码(顺便说一句,这将是执行此操作的正确位置),因此它必须以前发生过。

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

你可以像这样纠正它:

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

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

您提到的字符也是换行符,这就是修剪的原因

于 2013-06-13T22:30:37.197 回答