、什么是CURL且能实现什么功能?
什么是CURL
curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传等等,功能十分强大。
PHP中常用都实现那些功能:
1、实现远程获取和采集内容
2、实现PHP 网页版的FTP上传下载
3、实现模拟登陆
4、实现接口对接(API),数据传输等
5、实现模拟Cookie等
2、PHP 如何使用CURL功能
1 整个操作过程中第一步是用cur_init()函数进行初始化
$curl = curl_init(‘www.php100.com’);
2 然后,用curl_setopt()函数进行设置选项。
3 设置后,进行执行事务 curl_exec($curl);
4 最后关闭curl_close();
3、使用PHP CURL实现传输和获取功能
$curl = curl_init(); //初始化一个 cURL 对象
curl_setopt($curl, CURLOPT_URL, "http://www.php100.com");
//设置你需要抓取的URL
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
$data = curl_exec($curl); //运行cURL,请求网页
curl_close($curl); //关闭URL请求
===========
$user = "admin";
$pass = "admin100";
$curlPost = "user=$user&pass=$pass";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/edu/login.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($ch);
curl_close($ch);
1、CURL模拟登陆的流程和步骤
2、tempnam 创建一个临时文件
3、使用CURL模拟登陆到PHP100论坛
<?php
$cookie_file = tempnam('./temp','cookie');
$login_url = 'http://bbs.php100.com/login.php';
$post_fields = 'cktime=31536000&step=2&pwuser=php100-88&pwpwd=111111';
$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);
$url='http://bbs.php100.com/userpay.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
$contents = curl_exec($ch);
preg_match("/<li>?????(.*)<\/li>/",$contents,$arr);
echo $arr[1];
curl_close($ch);
?>