PHP中curl特性

废话不多说直接上代码:

要用php的curl模块,先在php.ini中开启php_curl.dll;

使用curl步骤;

1.初始化一个curl资源句柄;

2.设置url和相应的选项;

3.抓取url并把它传递给浏览器;

4.关闭curl资源,并且释放系统资源;


<?php
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,"http://www.baidu.com/");//curl的很多高级特性就在这里设置
    curl_exec($ch);
    curl_close($ch);
?>



curl高级特性:

1.curl模拟post传值;2.curl模拟表单上传;3.curl处理多个url;


<?php//post.php页面
print_r($_POST);



<?php
    //curl模拟post传值
    $url = "http://localhost/post.php";
    $post_arr = array(
        "user" => "demo",
        "pwd" => "123456",
    );
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//将curl_exec()获取到的文件信息以文件流的形式返回,而不是直接输出
    curl_setopt($ch, CURLOPT_POST, 1);//模拟表单的post方式提交
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_arr);
    $out = curl_exec($ch);
    curl_close($ch);
    echo $out;
?>

curl模拟上传与post传值类似,唯一需要注意的就是上传的文件名之前要加上@例如:


<?php
    $file_arr = array(
        'a' => "@D:/test.jpg",
    );



curl处理多个url与单个url的不同之处:


<?php
//创建一对curl资源
$ch1 = curl_init("http://www.baidu.com/");
$ch2 = curl_init("http://www.sina.com/");

//创建批处理curl资源句柄
$mh = curl_multi_init();

//增加2个句柄
curl_multi_add_handle($ch1);
curl_multi_add_handle($ch2);

$running = null;
do{
usleep(10000);
curl_muti_exec($mh, $running);
}while($running > 0);

//关闭全部句柄
curl_multi_remoce_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);

curl_multi_close($mh);


据说:curl比file_get_contents的速度快4倍。。。。



详细资料:http://cn2.php.net/manual/zh/book.curl.php





















转载于:https://my.oschina.net/zzqPHPer/blog/212983

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值