一聚教程网:一个值得你收藏的教程网站

热门教程

php通过curl函数取得数据、模拟登陆、POST数据

时间:2022-06-24 19:53:37 编辑:袖梨 来源:一聚教程网

例子,使用php curl获取网页数据的方法:

 代码如下 复制代码

$ch=curl_init();
//设置选项,包括URL
curl_setopt($ch,CURLOPT_URL,"http://www.111com.net");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER,0);
//执行并获取HTML文档内容
$output=curl_exec($ch);
//释放curl句柄
curl_close($ch);


使用php curl post提交数据的方法

 代码如下 复制代码

$url="http://www.111com.net/ curl_post.php";
$post_data=array (
 "nameuser"=>"syxrrrr",
 "pw"=>"123456"
);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
$output=curl_exec($ch);
curl_close($ch);
echo $output;

取得数据、模拟登陆、POST数据

 代码如下 复制代码

/********************** curl 系列 ***********************/
//直接通过curl方式取得数据(包含POST、HEADER等)
/*
 * $url: 如果非数组,则为http;如是数组,则为https
 * $header: 头文件
 * $post: post方式提交 array形式
 * $cookies: 0默认无cookie,1为设置,2为获取
 */
public function curl_allinfo($urls, $header = FALSE, $post = FALSE, $cookies = 0) {
    $url = is_array($urls) ? $urls['0'] : $urls;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    //带header方式提交
    if($header != FALSE){
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    }

    //post提交方式
    if($post != FALSE){
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    }

    if($cookies == 1){
        curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile");
    }else if($cookies == 2){
        curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile");
    }

    if(is_array($urls)){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    }

    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

最后附一个模仿搜索引擎蜘蛛来抓取网页

 代码如下 复制代码

function get_web_page( $url )
{
$options = array(
CURLOPT_RETURNTRANSFER => true,     // return web page 返回网页
CURLOPT_HEADER         => false,    // 不返回头信息
CURLOPT_FOLLOWLOCATION => true,     // follow redirects
CURLOPT_ENCODING       => "",       // handle all encodings
CURLOPT_USERAGENT      => "spider", // 设置UserAgent
CURLOPT_AUTOREFERER    => true,     // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect 连接超时
CURLOPT_TIMEOUT        => 120,      // timeout on response 回复超时
CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
);
$ch      = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err     = curl_errno( $ch );
$errmsg  = curl_error( $ch );
$header  = curl_getinfo( $ch );
curl_close( $ch );
$header[''errno'']   = $err;
$header[''errmsg'']  = $errmsg;
$header[''content''] = $content;
return $header;
}

 

热门栏目