欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php curl

程序员文章站 2022-04-27 16:36:18
...
curl可以说是php里一个非常强大的功能,每个php程序员都应该学习并熟悉curl,使用curl前确保你的php_curl扩展已经开启。

一、curl使用

例如:我们采集深圳智联招聘上PHP招聘的第一页信息

$url='http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E6%B7%B1%E5%9C%B3&kw=php&sm=0&p=1';//初始化$ch = curl_init();//设置选项,包括URLcurl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不自动输出内容curl_setopt($ch, CURLOPT_HEADER, 0);//不返回头部信息//执行curl$output = curl_exec($ch);//错误提示if(curl_exec($ch) === false){    die(curl_error($ch));}//释放curl句柄curl_close($ch);header('Content-type: text/html; charset=utf-8');echo $output;

当然我们必须对返回的数据使用>处理,找出我们想要的那一部分,然后根据你的需要把数据填充到你网站里

//职位名称preg_match_all('/.*?(.*?)/s', $output, $title);$title[1];//链接$title[2];//标题//公司名称preg_match_all('/
.*?(.*?)/s', $output, $company);$company[1];//链接$company[2];//名字//工作地点preg_match_all('/
\s*(.*?)\s*/s', $output, $address);$address[1];//地点//发布日期preg_match_all('/\s*(.*?)\s*/s', $output, $time);$time[1];//时间var_dump($time[1]);      

二、常用功能

curl的核心是通过设置各种选项来达到各种功能,这里我们介绍几种常用的选项。

1.post数据

$post=array('uid'=>'test','pwd'=>'curl123');curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));//POST数据

2.cookie

$savefile=dirname(__FILE__).'save.txt';$getfile=dirname(__FILE__).'get.txt';//可以分开使用curl_setopt($ch, CURLOPT_COOKIEJAR, $savefile); //保存  curl_setopt($ch, CURLOPT_COOKIEFILE, $getfile); //读取 

3.伪造IP、来路

curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'));//构造IP  curl_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com");//构造来路  

curl_setopt选项大全,详见PHP手册:http://www.php.net/manual/zh/function.curl-setopt.php

三、多线程

官方示例

// 创建一对cURL资源$ch1 = curl_init();$ch2 = curl_init();// 设置URL和相应的选项curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");curl_setopt($ch1, CURLOPT_HEADER, 0);curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");curl_setopt($ch2, CURLOPT_HEADER, 0);// 创建批处理cURL句柄$mh = curl_multi_init();// 增加2个句柄curl_multi_add_handle($mh,$ch1);curl_multi_add_handle($mh,$ch2);$running=null;// 执行批处理句柄do {    usleep(10000);    curl_multi_exec($mh,$running);} while ($running > 0);// 关闭全部句柄curl_multi_remove_handle($mh, $ch1);curl_multi_remove_handle($mh, $ch2);curl_multi_close($mh);
php curl

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • php curl
  • 专题推荐

    作者信息
    php curl

    认证0级讲师

    推荐视频教程
  • php curljavascript初级视频教程
  • php curljquery 基础视频教程
  • 视频教程分类
    相关标签: php curl