如何处理cURL PHP中的相对链接

时间:2013-03-28 09:24:24

标签: php redirect curl relative

以下PHP示例是我在项目中遇到的简化模型。在此示例中,我使用了www.google.com,因此每个人都可以轻松地重现我的问题。真正的问题在于其他一些无法公开访问的网站,而且卷曲请求要复杂得多,但问题与此示例中的相同。

<?php
function process_request(){

        $curl_Loc = curl_init();
        curl_setopt($curl_Loc, CURLOPT_URL, "http://www.google.com/");
        curl_setopt($curl_Loc, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($curl_Loc, CURLOPT_MAXREDIRS,1);
        curl_setopt($curl_Loc, CURLOPT_RETURNTRANSFER, TRUE);

        $response_Loc = curl_exec($curl_Loc);
        curl_close($curl_Loc);

        return $response_Loc;
}

$response = process_request();
echo $response;
?>

此脚本的问题在于它不会显示来自Google搜索页面的图片。此外,如果我尝试搜索某些内容,我会收到“404 not found”(此网址显示在地址栏中:http://localhost/search?ie=ISO-8859-2&hl=hr&source=hp&q=sdf&btnG=Google+pretra%BEivanje&gbv=2

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

Problem with this script is that it does not show images from Google search page.那是因为你没有搜索图像。

我修改了你的curl请求,搜索谷歌图片中的字符串test,它正在运行。您可以使用DOM或其​​他解析器方法/库(如SimpleHTMLDom)来获取图像。

function process_request(){

        $curl_Loc = curl_init();
        curl_setopt($curl_Loc, CURLOPT_URL, "http://www.google.com/search?q=test&tbm=isch");
        curl_setopt($curl_Loc, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($curl_Loc, CURLOPT_MAXREDIRS,1);
        curl_setopt($curl_Loc, CURLOPT_RETURNTRANSFER, TRUE);

        $response_Loc = curl_exec($curl_Loc);
        curl_close($curl_Loc);

        return $response_Loc;
}

$response = process_request();
echo $response;