PHP中的curl网络请求

来源:互联网 发布:网络存储工程师 编辑:程序博客网 时间:2024/04/30 11:06

在php中有很多方法可以获取某个url的内容,例如:

$content1 = file_get_contents("https://www.baidu.com");echo $content1;$content2 = file("https://www.baidu.com");print_r($content2);readfile("https://www.baidu.com");

但是这几个函数不够灵活,如果想要进行
(1)错误处理;
(2)向某个服务器提交表单数据,上传文件;
(3)处理cookies或者认证等任务时。
以上三个函数根本没法完成。

这个时候,就要使用cURL了。cURl不但支持很多的网络协议,而且提供了关于url请求的具体信息,很强大!通过cURL,我们能在php程序中自由地发送HTTP请求到某个url来获取或者提交数据。cURl的便捷及强大之处,你可以对curl_setopt进行一系列参数设置。

//设置网络请求配置function urlrequest($curl,$https=true,$method='GET',$data=null){//1.创建一个新cURL资源$ch = curl_init();//2.设置URL和相应的选项//要访问的网站curl_setopt($ch, CURLOPT_URL, $curl);//启用时会将头文件的信息作为数据流输出。    curl_setopt($ch, CURLOPT_HEADER, false); //将curl_exec()获取的信息以字符串返回,而不是直接输出。curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   if($https){//FALSE 禁止 cURL 验证对等证书(peer's certificate)。curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  //验证主机}if($method == 'POST'){//发送 POST 请求curl_setopt($ch, CURLOPT_POST, true); //全部数据使用HTTP协议中的 "POST" 操作来发送。curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  }//3.抓取URL并把它传递给浏览器$content = curl_exec($ch);if ($content  === false) {  return "网络请求出错: " . curl_error($ch);  exit();}//4.关闭cURL资源,并且释放系统资源curl_close($ch);return $content;}

curl 是使用URL语法的传送文件工具,支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道和大量其他有用的技巧 。

0 0
原创粉丝点击