Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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 卷曲重定向隐藏内容_Php_Html_Curl_Httprequest - Fatal编程技术网

Php 卷曲重定向隐藏内容

Php 卷曲重定向隐藏内容,php,html,curl,httprequest,Php,Html,Curl,Httprequest,所以我试图获得一个特定网页的内容。 我尝试使用curl,但结果是,我被重定向到主页,无法从需要的页面检索到我想要的信息 每当我使用file\u-get\u-contents()并将URL传递到我试图从中获取信息的网页时,它都能正常工作,但是file\u-get\u-contents()在服务器上不起作用,我被curl卡住了 有没有一种方法可以像使用curl和获取file\u get\u contents()这样的行为 我相信我试图从中获取信息的网页是为了封装数据,并将页面内容视图限制为仅限通过浏

所以我试图获得一个特定网页的内容。 我尝试使用
curl
,但结果是,我被重定向到主页,无法从需要的页面检索到我想要的信息

每当我使用
file\u-get\u-contents()
并将URL传递到我试图从中获取信息的网页时,它都能正常工作,但是
file\u-get\u-contents()
在服务器上不起作用,我被
curl
卡住了

有没有一种方法可以像使用
curl
和获取
file\u get\u contents()
这样的行为

我相信我试图从中获取信息的网页是为了封装数据,并将页面内容视图限制为仅限通过浏览器进入其网站的用户


谢谢您的帮助。

因为您的
cURL
上有一个重定向,您需要将此参数添加到现有的集合中

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

尝试此功能,您可以根据需要进行更改:

function url_get_contents($url,$ref="http://google.com",$posts=false){
    $crl = curl_init();
    $timeout = 5;
    $userAgent  = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/28.0.1500.71 Chrome/28.0.1500.71 Safari/537.36";
    curl_setopt ($crl, CURLOPT_USERAGENT,  $userAgent);
    curl_setopt ($crl, CURLOPT_URL, $url);
    curl_setopt ($crl, CURLOPT_ENCODING, 'UTF-8');
    curl_setopt ($crl, CURLOPT_HEADER, false);
    curl_setopt ($crl, CURLOPT_REFERER, $ref);
    curl_setopt ($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt ($crl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt ($crl, CURLOPT_AUTOREFERER, true);
    curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
    if($posts){
        curl_setopt ($crl, CURLOPT_POST, true);
        curl_setopt ($crl, CURLOPT_POSTFIELDS, http_build_query($posts));
    }
    $ret = curl_exec($crl);
    $info = curl_getinfo($crl);

if ($ret === false || $info['http_code'] != 200) {
   $ret = "No cURL data returned for $url [". $info['http_code']. "]";
   if (curl_error($crl))
     $ret .= "\n". curl_error($crl);
}
    curl_close($crl);
    return $ret;
}
如果你认为是用户代理,你可以很容易地改变它,或者传入一个推荐人url

$url = "somewebsitehere.com";
$contents = url_get_contents($url); #use google.com as referrer
$content2 = url_get_contents($url,$url); #use same url as referrer

如果您使用的是chrome,那么您可以在开发者工具中打开“网络”选项卡,并在浏览器中请求该页面。然后右键单击请求并复制cURL请求。