Php 卷曲罐';无法获取特定网站的内容

Php 卷曲罐';无法获取特定网站的内容,php,curl,Php,Curl,我试着用cURL获取这个网站的内容 www.mytischtennis.de/public/ 但是它没有得到身体的反应。与许多其他网站一样,代码也起作用: <?php $output = grabPage( "http://www.mytischtennis.de/public/" //"http://www.spiegel.de" //this page and many other pages are working ); if (is_array($output))

我试着用cURL获取这个网站的内容

www.mytischtennis.de/public/

但是它没有得到身体的反应。与许多其他网站一样,代码也起作用:

<?php


$output = grabPage(
    "http://www.mytischtennis.de/public/"
  //"http://www.spiegel.de" //this page and many other pages are working
);

if (is_array($output)) {
    var_dump($output);
} else {
    echo $output;
}

function grabPage($url)
{
    $ch = curl_init();
    $cookiePath= dirname(__FILE__) . "\cookie.txt";

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 50);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_TIMEOUT, 40);
    curl_setopt($ch, CURLOPT_COOKIE, 'CFID=c7a592d8-5798-4471-9af4-4c4d954d03cd; cfid=c7a592d8-5798-4471-9af4-4c4d954d03cd; MYTT_COOKIESOK=1; CFTOKEN0=; cftoken=0; SRV=74');
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiePath);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiePath);

    $fpErrors = fopen(dirname(__FILE__) . '\errorlog.txt', 'w');

    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    curl_setopt($ch, CURLOPT_STDERR, $fpErrors);

    curl_setopt($ch, CURLOPT_URL, $url);
    ob_start();
    $curl_exec = curl_exec($ch);
    ob_end_clean();


    if ($curl_exec === false) {
        echo 'Error: ' . curl_error($ch);
    } else {
        echo 'Success';
    }

    var_dump(curl_getinfo($ch));
    curl_close($ch);

    return $curl_exec;
}

您需要通过在请求中发送适当的HTTP头来接受响应中的gzip编码:

curl_setopt($ch,CURLOPT_HTTPHEADER,array('Accept-Encoding:gzip'));
现在,来自服务器的答案可能是gziped,也可能不是gziped。正确的检查方法是解释响应中的内容编码HTTP头。但你也可以像这样快速而肮脏地完成:

$content=@gzdecode($curl\u exec);
返回$content!==假的$内容:$curl_exec;

也许他们不想让你窃取他们的内容