Php 文件获取内容和&;amp;

Php 文件获取内容和&;amp;,php,url,Php,Url,所以,这似乎是一个常见的错误,但我已经尝试了一切,它就是不工作 我的代码当前如下所示: $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_cont

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

我的代码当前如下所示:

$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
正如你所看到的,我得到的不是普通的ol’&(安培)而是&安培

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


谢谢

您是否尝试了单引号,这样您的测试字符串就可以按字面意思理解了?如

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

您是否尝试了单引号,这样您的测试字符串就可以按字面意思理解了?如

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

我的问题的答案很简单:

当$item_title包含空格时,PHP抛出了一个错误。要解决此问题,我所要做的就是将以下内容添加到我的代码中:

strtr( $item_title, " ", "+" );
将空格更改为加号。不再有失败的请求


谢谢大家。

我的问题的答案很简单:

当$item_title包含空格时,PHP抛出了一个错误。要解决此问题,我所要做的就是将以下内容添加到我的代码中:

strtr( $item_title, " ", "+" );
将空格更改为加号。不再有失败的请求


谢谢大家。

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

search_jobs.php?catagory_select=1&keys=head of IT 
当单词“头”之间有空格时,它不起作用

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

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

“search\u jobs.php?catagory\u select=1&keys=head of IT”

现在,要从参数“head of IT”自动重拼空格,需要在加载页面“search_jobs.php”上添加javascript代码


if(location.href.indexOf(“%20”)>-1){
location.href=location.href.replace('%20','-');
}
将此代码添加到页面顶部,它将在打开页面之前自动将空格替换为“-”破折号


谢谢

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

search_jobs.php?catagory_select=1&keys=head of IT 
当单词“头”之间有空格时,它不起作用

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

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

“search\u jobs.php?catagory\u select=1&keys=head of IT”

现在,要从参数“head of IT”自动重拼空格,需要在加载页面“search_jobs.php”上添加javascript代码


if(location.href.indexOf(“%20”)>-1){
location.href=location.href.replace('%20','-');
}
将此代码添加到页面顶部,它将在打开页面之前自动将空格替换为“-”破折号


谢谢

能否检查php.ini文件中是否启用了allow\u url\u fopen?或者尝试另一个url,如$query=file\u get\u contents(');当我在php.ini中执行文件获取内容(“)时,允许打开文件获取内容(“),我没有收到任何错误(并且打印$response工作正常)。即使执行文件获取内容(“)工作,它们也不会更改为
&s,这只是为了在浏览器中正确设置错误消息的格式。能否检查php.ini文件中是否启用了allow\u url\u fopen?或者尝试另一个url,如$query=file\u get\u contents(');当我在php.ini中执行文件获取内容(“)时,允许打开文件获取内容(“),我没有收到任何错误(并且打印$response工作正常)。即使执行文件获取内容(“)工作,它们也不会更改为
&s,这只是为了在浏览器中正确设置错误消息的格式。是的,我尝试了,但没有成功。但我发现了什么有用(愚蠢的我)——我传递的字符串&q=$item\u title中有空格。我需要找到一种方法将它们转换成可以工作的东西(可能是加号?),但这基本上就是造成问题的原因…现在看来问题是,当我传递一个项目标题时,其中包含空格,它会给出这个错误。我尝试过“引用”该项目(单引号和双引号),将空格转换为%20和加号,但似乎不起作用。。。有什么想法吗?你试过卷发吗?curl比file\u get\u内容更快更好。你能用不带apikey的值粘贴URL吗?好的,找到了问题。将$item_标题中的空格翻译为加号确实有效。strtr($项目名称“,”+”);谢谢你们的帮助!是的,我试过了,但没用。但我发现了什么有用(愚蠢的我)——我传递的字符串&q=$item\u title中有空格。我需要找到一种方法将它们转换成可以工作的东西(可能是加号?),但这基本上就是造成问题的原因…现在看来问题是,当我传递一个项目标题时,其中包含空格,它会给出这个错误。我尝试过“引用”该项目(单引号和双引号),将空格转换为%20和加号,但似乎不起作用。。。有什么想法吗?你试过卷发吗?curl比file\u get\u内容更快更好。你能用不带apikey的值粘贴URL吗?好的,找到了问题。将$item_标题中的空格翻译为加号确实有效。strtr($项目名称“,”+”);谢谢你们的帮助!