cURL仅检索URL地址

时间:2011-09-08 15:27:56

标签: php url curl

使用PHP和cURL,我想检查是否可以使用提供的用户凭据登录网站。为此我正在检索整个网站,然后使用正则表达式来过滤可能表明登录不起作用的关键字。

如果输入了错误的用户名/密码,则url本身包含字符串“errormessage”。是否可以仅使用curl来获取url地址,而没有内容加速它?

这是我的curl PHP代码:

function curl_get_request($referer, $submit_url, $ch)
{
    global $cookie_path;

    // sends a request via curl to the string specifics listed
    $agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
    curl_setopt($ch, CURLOPT_URL, $submit_url); 
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_REFERER, $referer); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_path); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_path); 
    return $result = curl_exec ($ch);
}

另外,如果有人对如何处理这样的问题有更好的了解,请告诉我!

1 个答案:

答案 0 :(得分:0)

每次有重定向时,您应该检查网址。大多数重定向将使用正确的HTTP标头完成。如果是这种情况,请参阅以下答案:

PHP: cURL and keep track of all redirections

基本上,请关闭自动重定向,然后检查301302的HTTP状态代码。如果你得到其中一个,你可以继续按照重定向,或从那里退出。

如果相反,重定向发生在客户端,则必须使用DOM解析器解析页面。