您好,欢迎访问一九零五行业门户网

php如何使用curl?(用法介绍)

php如何使用curl?下面本篇文章给大家总结一下php中的curl的用法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
一、curl简介
百度百科给的解释是:数据传输神器。那它神器在什么地方那,通过查找资料得出curl可以使用url的语法模拟浏览器来传输数据,因为是模拟浏览器所以它支持多种的网络协议。目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持https认证、http post、http put、 ftp 上传(这个也能通过php的ftp扩展完成)、http 基于表单的上传、代理、cookies和用户名+密码的认证。
php中使用最多的是通过curl来模拟get和post请求。
二、用法
(1)、要想使用curl,第一步先要在php中开启curl,在php配置文件php.ini中找到extension=php_curl.dll,把前面的‘;’去掉。重启服务器。在php代码中用phpinfo()打印,发现图中curl说明开启成功。
(2)、使用curl完成简单的请求主要分为四大步:
初始化,创建一个新的curl资源。
设置url和相应的选项
抓取url并把他传递给浏览器
关闭curl资源。把资源释放。
eg:
<?php// 创建一个新curl资源$ch = curl_init();// 设置url和相应的选项$options = array(curlopt_url => 'http://www.example.com/', curlopt_header => false );curl_setopt_array($ch, $options);// 抓取url并把它传递给浏览器curl_exec($ch);// 关闭curl资源,并且释放系统资源curl_close($ch);?>
三、curl函数
curl_close — 关闭一个curl会话
curl_copy_handle — 复制一个curl句柄和它的所有选项
curl_errno — 返回最后一次的错误号
curl_error — 返回一个保护当前会话最近一次错误的字符串
curl_escape — 使用 url 编码给定的字符串
curl_exec — 执行一个curl会话
curl_file_create — 创建一个 curlfile 对象
curl_getinfo — 获取一个curl连接资源句柄的信息
curl_init — 初始化一个curl会话
curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄
curl_multi_close — 关闭一组curl句柄
curl_multi_exec — 运行当前 curl 句柄的子连接
curl_multi_getcontent — 如果设置了curlopt_returntransfer,则返回获取的输出的文本流
curl_multi_info_read — 获取当前解析的curl的相关传输信息
curl_multi_init — 返回一个新curl批处理句柄
curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
curl_multi_select — 等待所有curl批处理中的活动连接
curl_multi_setopt — 为 curl 并行处理设置一个选项
curl_multi_strerror — return string describing error code
curl_pause — pause and unpause a connection
curl_reset — 重置一个 libcurl 会话句柄的所有的选项
curl_setopt_array — 为curl传输会话批量设置选项
curl_setopt — 设置一个curl传输选项
curl_share_close — close a curl share handle
curl_share_init — initialize a curl share handle
curl_share_setopt — set an option for a curl share handle.
curl_strerror — return string describing the given error code
curl_unescape — 解码给定的 url 编码的字符串
curl_version — 获取curl版本信息
四、实例
1、使用curl,get获得数据
<?php$url = 'http://www.example.com';//初始化一个 curl 对象 $ch = curl_init();//设置你需要抓取的urlcurl_setopt($ch, curlopt_url, $url);// 设置curl 参数,要求结果保存到字符串中还是输出到屏幕上。curl_setopt($ch, curlopt_returntransfer, 1);//是否获得跳转后的页面curl_setopt($ch, curlopt_followlocation, 1);$data = curl_exec($ch);curl_close($ch);echo $data;?>
2、使用curl,post获得数据
<?phpfunction curl_post($url, $arr_data){ $post_data = http_build_query($url_data); $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_postflelds, $post_data); $data = curl_exec($ch); curl_close($ch); echo $data;}$arr_post = array( 'name'=>'test_name', 'age' => 1);curl_post("http://www.explame.com/", $arr_post);?>
3、使用代理抓取页面
为什么要使用代理进行抓取呢?以google为例吧,如果去抓google的数据,短时间内抓的很频繁的话,你就抓取不到了。google对你的ip地址做限制这个时候,你可以换代理重新抓。
<?php$ch = curl_init();curl_setopt($ch, curlopt_url, "http://google.com"); curl_setopt($ch, curlopt_header, false); curl_setopt($ch, curlopt_returntransfer, 1);//是否通过http代理来传输curl_setopt($ch, curlopt_httpproxytunnel, true);curl_setopt($ch, curlopt_proxy, 125.21.23.6:8080); //url_setopt($ch, curlopt_proxyuserpwd, 'user:password');如果要密码的话,加上这个 $result=curl_exec($ch); curl_close($ch);?>
4、继续保持本站session的调用
在实现用户同步登录的情况下需要共享session,如果要继续保持本站的session,那么要把sessionid放到http请求中
<?php$session_str = session_name().'='.session_id().'; path=/; domain=.explame.com';session_write_close(); //将数据写入文件并且结束session$ch = curl_init();curl_setopt($ch, curlopt_url, $url);curl_setopt($ch, curlopt_header, false);curl_setopt($ch, curlopt_returntransfer, 1);curl_setopt($ch, curlopt_cookie, $session_str); $ret = curl_exec($ch);curl_close($ch);?>
end
本文转载自:https://blog.csdn.net/longgeaisisi/article/details/89330576
推荐学习:php视频教程
以上就是php如何使用curl?(用法介绍)的详细内容。
其它类似信息

推荐信息