关于为什么以下不起作用的任何想法。
$request_url = "someurl?myId=$id"; //returns feed like above
$json = file_get_contents($request_url, true); //getting the file content
$decode = json_decode($json, true);
var_dump($json);
当我将request_url粘贴到浏览器中时,我得到了json数据,但如果我在php中尝试,则var_dump只是bool(false);任何想法??
更新并修复 好的家伙感谢所有的帮助。你帮我跟踪了这个。事实证明,php.ini配置为禁止打开网址,因此file_get_contents将无法正常工作。我找到了各种网站上提到的以下方便功能,并使用它进行排序。这是我用来帮助别人的方法。
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser.
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
答案 0 :(得分:0)
也许$ request_url的响应字符集不是'utf-8'或'ansi'。
答案 1 :(得分:0)
我复制了你的问题,当ajax url错误(未找到)时,我观察到bool(false)。 确保你的“someurl”有效。
如果JSON无效,您的脚本仍会正确打印。 如果网址没有返回任何内容,你仍然会看到'string(0)“”'
问题是无效的网址。
答案 2 :(得分:0)
根据PHP文档,file_get_contents在失败时返回false。这意味着该URL无效或无法从php访问。
如果您是从服务器尝试此操作,请确保您的防火墙没有阻止此传出流量。