首页后端开发PHPphp如何使用curl?(用法介绍)

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

时间2024-02-02 02:21:02发布访客分类PHP浏览718
导读:收集整理的这篇文章主要介绍了php如何使用curl?(用法介绍),觉得挺不错的,现在分享给大家,也给大家做个参考。php如何使用curl?下面本篇文章给大家总结一下php中的curl的用法。有一定的参考价值,有需要的朋友可以参考一下,希望对...
收集整理的这篇文章主要介绍了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?(用法介绍)的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: php如何使用curl?(用法介绍)
本文地址: https://pptw.com/jishu/596233.html
了解PHP中self关键字的相关知识 php如何使用imagecopyresampled(图像处理函数)?

游客 回复需填写必要信息