我的代码中有以下行
$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是什么?
答案 0 :(得分:0)
您的网址似乎被编码了两次。
由于您在所显示的代码中完全没有编码(通过这样做的方式),它必须在之前发生过。
错误不在此代码中,而是在此之前的某处。
你可以这样纠正:
$lib = simplexml_load_file("http://www.goodreads.com/book/title.xml?key=MYAPIKEY&title=" . trim(urldecode($current_book)),null,true);
但是,这只是现有错误的解决方法,您应该修复先前的编码。
你提到的角色也是换行符,这就是修剪的原因