Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP文件\u get\u contents()返回启用cookies?_Php_Http_Get_File Get Contents - Fatal编程技术网

PHP文件\u get\u contents()返回启用cookies?

PHP文件\u get\u contents()返回启用cookies?,php,http,get,file-get-contents,Php,Http,Get,File Get Contents,我正试着做一个文件,它会返回这个- $this->base是带有http的satoshidice.com/api 为什么它会返回上面发布的图像中的内容?建议您使用cURL而不是file\u get\u内容 $_curl = curl_init(); curl_setopt($_curl, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($_curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($_curl, CURLO

我正试着做一个文件,它会返回这个-

$this->base是带有http的satoshidice.com/api


为什么它会返回上面发布的图像中的内容?

建议您使用cURL而不是file\u get\u内容

$_curl = curl_init();
curl_setopt($_curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($_curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($_curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($_curl, CURLOPT_COOKIEFILE, './cookiePath.txt');
curl_setopt($_curl, CURLOPT_COOKIEJAR, './cookiePath.txt');
curl_setopt($_curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.1)');
curl_setopt($_curl, CURLOPT_FOLLOWLOCATION, true); //new added
curl_setopt($_curl, CURLOPT_URL, $url);
$rtn = curl_exec( $_curl );
更新: 添加了“CURLOPT_FOLLOWLOCATION”

说明:

对于此主机,它将检查cookie是否存在

如果请求的cookie不存在,它将创建cookie并生成HTTP代码307以重定向:


因为这不是你的网站,服务器通过HTTP向你发送了对你请求的解析响应,而不是像你所期望的那样直接打开文件。毕竟,你的电脑没有访问文件系统的权限…文件获取内容调用不会发送任何cookies,因此,在web服务器上,它看起来就像一个禁用了Cookie的浏览器。这是一个API,不需要发送Cookie。我尝试了下面的答案,但它不起作用。正如其他人所说,您正在尝试在未启用Cookie的情况下读取其他网站的文件-这在该网站上不起作用,因为它需要cookie。我启用了cookie,即使我在浏览器上访问它时,它也可以在启用或不启用cookie的情况下工作。虽然这是一个良好的开端,但如果网站需要cookie,正如响应所示,您也需要设置cookie处理,然后才能真正解决问题。@JohnSmith对于此主机,添加了HTTP代码307重定向的“CURLOPT_FOLLOWLOCATION”注意:未定义的变量:中的url
$_curl = curl_init();
curl_setopt($_curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($_curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($_curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($_curl, CURLOPT_COOKIEFILE, './cookiePath.txt');
curl_setopt($_curl, CURLOPT_COOKIEJAR, './cookiePath.txt');
curl_setopt($_curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.1)');
curl_setopt($_curl, CURLOPT_FOLLOWLOCATION, true); //new added
curl_setopt($_curl, CURLOPT_URL, $url);
$rtn = curl_exec( $_curl );