4

我敢肯定这很简单。我正在使用下面的函数来检索网站原始 html 以解析它。在测试期间,我决定在 stackoverflow.com 上运行我的代码

Chrome 没有得到 html 响应,而是打印出实际的站点,而不是将 html 分配给它的名副其实。我错过了什么?

function get_site_html($site_url) 
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_COOKIESESSION, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 4);
    curl_setopt($ch, CURLOPT_FORBID_REUSE, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_URL, $site_url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);

    global $base_url; 
    $base_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    $http_response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    curl_close ($ch);
    return $response;
}

应将站点原始 html 分配给 $response,然后将其返回。

4

1 回答 1

8

您的代码有效。尝试echo htmlentities($response); 您将获得您正在卷曲的网站的原始 html。

于 2013-06-16T15:02:16.110 回答