加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php CURL函数入门教程介绍

发布时间:2022-07-27 12:12:59 所属栏目:PHP教程 来源:互联网
导读:在php中 cURL函数有一组相关函数,它是一个非常不错的函数了,我们经常用它来模仿各种登录与采集工作,下面我来给各位介绍CURL函数入门吧。 cURL简介 cURL是一个利用URL语法规定来传输数据和文件的工具,支持很多种协议如HTTP、FTP、TELNET等。PHP也支持 cURL
  在php中 cURL函数有一组相关函数,它是一个非常不错的函数了,我们经常用它来模仿各种登录与采集工作,下面我来给各位介绍CURL函数入门吧。
 
  cURL简介
 
  cURL是一个利用URL语法规定来传输数据和文件的工具,支持很多种协议如HTTP、FTP、TELNET等。PHP也支持 cURL 库。
 
  假如我们要获取某个网页的内容,我们可能会使用下面这几种方法:
 
  <?php
  // 把整个文件读入一个字符串中
  $str = file_get_contents("http://www.phpfensi.com");
  // 把整个文件读入一个数组中
  $arr = file("http://www.phpfensi.com");
  // 读入一个文件并写入到输出缓冲
  $out = readfile("http://www.phpfensi.com");
  ?>
  这几种做法相当简单,但缺乏灵活性和有效的错误处理,而且他们无法完成一些高难度动作,比如处理coockies、验证、表单提交、文件上传等等。
 
  cURL简例
 
  下面给出一段简单的代码,从其中你可以学习到使用cURL的大概步骤,php cURL入门教程,实例代码如下:
 
  <?php
  header("Content-type: text/html; charset=utf-8");
  // 1. 初始化
  $ch = curl_init();
  // 2. 设置选项
  curl_setopt($ch, CURLOPT_URL, "http://www.111cn.net");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  // 3. 执行并获取返回的内容
  $output = curl_exec($ch);
  // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号
  if ($output === FALSE) {
      echo "cURL Error: " . curl_error($ch);
  }
  // 5. 释放curl资源
  curl_close($ch);
  // 输出获得的源代码
  echo $output;
  ?>
  关于第二步的 curl_setopt() 是最为重要的,有一长串cURL参数可供设置,它们能指定URL请求的各个细节。
  获取信息
 
  这是另一个可选的设置项,能够在cURL执行后获取这一请求的有关信息,代码如下:
 
  <?php
  header("Content-type: text/html; charset=utf-8");
  // 1. 初始化
  $ch = curl_init();
  // 2. 设置选项
  curl_setopt($ch, CURLOPT_URL, "http://www.111cn.net");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  // 3. 执行并获取HTML文档内容
  $output = curl_exec($ch);
  // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号
  if ($output === FALSE) {
      echo "cURL Error: " . curl_error($ch);
  }
  // 获取 cURL 信息 并输出
  $info = curl_getinfo($ch);
  echo '获取 '. $info['url'] . ' 耗时 '. $info['total_time'] . '秒';
  // 5. 释放curl句柄
  curl_close($ch);
  ?>
  返回的数组中包括了以下信息:
 
  "url"     // 资源网络地址
  "content_type"     // 内容类型和编码
  "http_code"     // HTTP状态码
  "header_size"     // header的大小
  "request_size"     // 请求的大小
  "filetime"     // 文件创建时间
  "ssl_verify_result"     // SSL验证结果
  "redirect_count"     // 跳转技术   
  "total_time"     // 总耗时
  "namelookup_time"     // DNS查询耗时
  "connect_time"     // 等待连接耗时
  "pretransfer_time"     // 传输前准备耗时
  "size_upload"     // 上传数据的大小
  "size_download"     // 下载数据的大小
  "speed_download"     // 下载速度
  "speed_upload"     // 上传速度
  "download_content_length"     // 下载内容的长度
  "upload_content_length"     // 上传内容的长度   
  "starttransfer_time"     // 开始传输的时间
  "redirect_time"     // 重定向耗时
  用POST方法发送数据,新建 from.php,代码如下:
 
  <?php
  header("Content-type: text/html; charset=utf-8");
  // 待 post 的数据
  $post_data = array (
      "hyh" => "man",
      "xlp" => "woman",
      "love" => "yes"
  );
  // 1. 初始化
  $ch = curl_init();
  // 2. 设置选项
  curl_setopt($ch, CURLOPT_URL, "http://localhost/to.php");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_POST, 1); // 这里设置为post方式
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); // 添加准备post的数据
  // 3. 执行并获取返回内容
  $output = curl_exec($ch);
  // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号
  if ($output === FALSE) {
      echo "cURL Error: " . curl_error($ch);
  }
  // 5. 释放curl句柄
  curl_close($ch);
  // 输出内容
  echo $output;
  ?>
  新建to.php,代码如下:
 
  <?php
  header("Content-type: text/html; charset=utf-8");
  echo "从 from.php POST数据到 to.php 成功!以下为 to.php 返回的数据:<br><br>";
  print_r($_POST);
  echo "<br><br>I'm come from http://www.phpfensi.com"
  ?>
  文件上传
 
  上传文件和前面的POST十分相似,因为所有的文件上传表单都是通过POST方法提交的。
 
  新建 from.php,代码如下:
 
  <?php
  header("Content-type: text/html; charset=utf-8");
  // 待 post 的数据
  $post_data = array (
      "hyh" => "man",
      "upload" => "@C:/test.zip" // 要上传的本地文件地址
  );
  // 1. 初始化
  $ch = curl_init();
  // 2. 设置选项
  curl_setopt($ch, CURLOPT_URL, "http://localhost/to.php");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_POST, 1); // 这里设置为post方式
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); // 添加准备post的数据
  // 3. 执行并获取返回内容
  $output = curl_exec($ch);
  // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号
  if ($output === FALSE) {
      echo "cURL Error: " . curl_error($ch);
  }
  // 5. 释放curl资源
  curl_close($ch);
  // 输出内容
  echo $output;
  ?> 

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读