PHP的cURL库简介及使用示例
分类:多线程

利用PHP的cU君越L库能够大约和有效性地去抓网页。你只须求周转三个剧本,然后深入分析一下你所抓取的网页,然后就足以以程序的不二法门取得你想要的数额了。无论是你想从从八个链接上取部分数据,或是取叁个XML文件并把其导入数据库,那怕就是简约的获得网页内容,cULacrosseL 是一个功效强盛的PHP库。

PHP中的CURL函数库(Client URL Library Function)

复制代码 代码如下:
curl_close — 关闭一个curl会话
curl_copy_handle — 拷贝四个curl连接能源的具有内容和参数
curl_errno — 重回多少个满含当前会话错误新闻的数字编号
curl_error — 再次回到一个蕴含当前会话错误音信的字符串
curl_exec — 实施二个curl会话
curl_getinfo — 取得三个curl连接能源句柄的音讯
curl_init — 开端化二个curl会话
curl_multi_add_handle — 向curl批管理会话中增多单独的curl句柄能源
curl_multi_close — 关闭二个批管理句柄能源
curl_multi_exec — 分析二个curl批管理句柄
curl_multi_getcontent — 再次来到获取的输出的文本流
curl_multi_info_read — 获取当前深入分析的curl的连带传输音讯
curl_multi_init — 初叶化二个curl批管理句柄财富
curl_multi_remove_handle — 移除curl批管理句柄财富中的有个别句柄能源
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array — 以数组的花样为多个curl设置会话参数
curl_setopt — 为多个curl设置会话参数
curl_version — 获取curl相关的版本音信
curl_init(卡塔尔函数的功用开始化叁个curl会话,curl_init(State of Qatar函数独一的三个参数是可选的,表示四个url地址。
curl_exec(卡塔尔(قطر‎函数的功用是施行二个curl会话,独一的参数是curl_init(卡塔尔函数重回的句柄。
curl_close(卡塔尔(قطر‎函数的效果与利益是关门多少个curl会话,独一的参数是curl_init(卡塔尔函数再次回到的句柄。

事例一: 基本例子

复制代码 代码如下:
﹤?php
// 开端化二个 cUKugaL 对象
$curl = curl_init();
// 设置你需求抓取的UOdysseyL
curl_setopt($curl, CURLOPT_URL, '');
// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);
// 设置cU中华VL 参数,须要结果保存到字符串中依然出口到显示屏上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 运转cU瑞虎L,需要网页
$data = curl_exec($curl);
// 关闭URL请求
curl_close($curl);
// 呈现得到的数额
var_dump($data);
?>

例子二: POST数据

sendSMS.php,其得以选用五个表单域,一个是电话号码,多个是短信内容。

复制代码 代码如下:
﹤?php
$phoneNumber = '13812345678';
$message = 'This message was generated by curl and php';
$curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' . urlencode($message) . '&SUBMIT=Send';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);
?﹥

事例三:使用代理服务器

复制代码 代码如下:
﹤?php 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'proxy.lxvoip.com:1080');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$data = curl_exec();
curl_close($ch);
?﹥

事例四: 模拟登陆

Curl 模拟登入 discuz 程序,相符DZ7.0,将username改成你的客商名,userpass改成你的密码就可以了.

复制代码 代码如下:
/**  
* Curl 模拟登陆 discuz 程序  
* 还未有完毕开启验证码的的论坛登入功能  
*/  
!extension_loaded('curl') && die('The curl extension is not loaded.');   
$discuz_url = '   
$login_url = $discuz_url .'/logging.php?action=login';//登陆页地址   
$get_url = $discuz_url .'/my.php?item=threads'; //作者的帖子   
$post_fields = array();   
//以下两项不须求修正   
$post_fields['loginfield'] = 'username';   
$post_fields['loginsubmit'] = 'true';   
//客户名和密码,必须填写   
$post_fields['username'] = 'lxvoip';   
$post_fields['password'] = '88888888';   
//安全提问   
$post_fields['questionid'] = 0;   
$post_fields['answer'] = '';   
//@todo验证码   
$post_fields['seccodeverify'] = '';   
//获取表单FORMHASH   
$ch = curl_init($login_url);   
curl_setopt($ch, CURLOPT_HEADER, 0);   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   
$contents = curl_exec($ch);   
curl_close($ch);   
preg_match('//i', $contents, $matches);   
if(!empty($matches)) {   
    $formhash = $matches[1];   
} else {   
    die('Not found the forumhash.');   
}   
//POST数据,获取COOKIE   
$cookie_file = dirname(apizl_file) . '/cookie.txt';   
//$cookie_file = tempnam('/tmp');   
$ch = curl_init($login_url);   
curl_setopt($ch, CURLOPT_HEADER, 0);   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   
curl_setopt($ch, CURLOPT_POST, 1);   
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);   
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);   
curl_exec($ch);   
curl_close($ch);   
//带着上边获得的首席实践官KIE获取须要登陆后技巧查看的页面内容   
$ch = curl_init($get_url);   
curl_setopt($ch, CURLOPT_HEADER, 0);   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);   
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);   
$contents = curl_exec($ch);   
curl_close($ch);   
var_dump($contents);   
?>

上述就是本文的全体内容了,希望大家能够赏识。

本文由10bet手机官网发布于多线程,转载请注明出处:PHP的cURL库简介及使用示例

上一篇:Python入门教程 下一篇:没有了
猜你喜欢
热门排行
精彩图文