2

所以这似乎是一个常见的错误,但我已经尝试了一切,但它不起作用!

我的代码目前如下所示:

$apikey = "XXXXXXXXX";
$search_url = "https://www.googleapis.com/shopping/search/v1/public/products?key=$apikey&country=US&q=$item_title&restrictBy=gtin&alt=json";

$response = file_get_contents($search_url);

我已经尝试了从 urldecode 到 html_entity_decode/encode 到几乎所有我能找到的解决方案,但仍然得到相同的错误:

file_get_contents(https://www.googleapis.com/shopping/search/v1/public/products?key=XXXXX&country=US&q=THESTRING&restrictBy=gtin&alt=json) failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

如您所见,我得到的是 &s 而不是普通的 ol' & (&)

我记得有一个类似的问题,问题只是我在字符串的开头没有“http://”。但正如你所看到的,这里的情况并非如此。

谢谢!

4

3 回答 3

0

您是否尝试过单引号,所以您的测试字符串会按字面意思理解?如在

$search_url = 'https://www.googleapis.com/shopping/search/v1/public/products?key='.$apikey.'&country=US&q=$item_title&restrictBy=gtin&alt=json';
于 2012-09-18T08:32:38.963 回答
0

尝试从参数中删除空格,例如我的情况:

search_jobs.php?catagory_select=1&keys=head of IT 

当“IT主管”一词之间有空格时,它不起作用

search_jobs.php?catagory_select=1&keys=head-of-IT

我已经用“-”破折号替换了空格,它现在可以工作了。

如果您认为您需要对脚本进行大量更改以替换所有空格,那么这是打开页面的一种快速方法,就像我打开页面一样:

“search_jobs.php?catagory_select=1&keys=IT 主管”

现在要从参数“IT主管”中自动替换空格,您需要在加载页面“ search_jobs.php ”上添加javascript代码

    <script>
if(location.href.indexOf('%20') > -1){
    location.href = location.href.replace('%20','-');
}
    </script>

在页面顶部添加此代码,它将在打开页面之前自动将空格替换为“-”破折号。

谢谢你

于 2017-09-04T09:20:05.957 回答
-1

我的问题的答案很简单:

当 $item_title 包含空格时,PHP 会抛出错误。为了解决这个问题,我所要做的就是将它添加到我的代码中:

strtr( $item_title, " ", "+" );

将空格更改为加号。不再有失败的请求!

多谢你们。

于 2012-09-20T08:07:25.147 回答