PHP中的数据传输神器cURL

 

  • 概念
    • cURL:(Client URL Library Functions)由Daniel Stenberg创建
    • 官方定义: curl is a command line tool for  transferring data with URL syntax
    • 即:百度翻译---用URL语法传输数据的命令行工具

PHP中的数据传输神器cURL_第1张图片

 

  • cURL使用场景
    • 其他资源...
    • 所有网络上的资源都可以用cURL访问和下载到
  • FTP服务器里面的文件资源
    • 上传|下载 FTP服务器里面的文件
  • WebService数据接口资源(查询天气|号码归属地...)
    • 动态获取接口数据 如天气、号码归属地...
  • 网页资源(新闻|购物...)
    • 编写网页爬虫 抓取时时信息(新闻|热卖...)
  • 在PHP中使用cURL
    • 确认PHP支持cURL
      • Windows

PHP中的数据传输神器cURL_第2张图片

 

  •             Linux

 

  • 若是环境中没有开启cURL支持 需要添加cURL支持
    1. Windows: https://blog.csdn.net/u014149394/article/details/74332870
    2. Linux:http://blog.163.com/sweet_hard/blog/static/666568382011112291327332
    3. 百度关键词
      1. PHP windows curl
      2. PHP linux curl

 

 

  • 在PHP中使用cURL
    1. 步骤分析
      1. 初始化 cURL   curl_init()
      2. 客户端向服务器发送请求 接收响应 curl_exec()
      3. 关闭cURL  curl_close()

PHP中的数据传输神器cURL_第3张图片

 

  • 用cURL制作一个简单的网页爬虫
    1. 初始化|请求(响应)|关闭

PHP中的数据传输神器cURL_第4张图片

PHP中的数据传输神器cURL_第5张图片

PHP中的数据传输神器cURL_第6张图片

 

  • 用cURL抓取网页信息并替换部分内容
    1. 初始化 curl_init()
    2. 设置访问页面的URL

curl_setopt($curl, CURLOPT_URL, "http://www.baidu.com") ;

  • 设置获取的信息以文件流的形式返回

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true) ;

  • 执行会话  $curl_output = curl_exec($curl) ;
    1. 关闭 curl_close($curl) ;
    2. 字串替换  echo str_replace("百度", "HAPPY", $curl_output) ;

PHP中的数据传输神器cURL_第7张图片

PHP中的数据传输神器cURL_第8张图片

 

 

 

 

 

  • 用cURL调用WebService获取天气信息
    1. 调用WebService 天气接口 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx

PHP中的数据传输神器cURL_第9张图片

PHP中的数据传输神器cURL_第10张图片

 

 

  • 初始化curl  curl_init()
    1. 设置url

curl_setopt($curlobj, CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName") ;

  • 设置请求头信息 curl_setopt($curlobj, CURLOPT_HEADER, 0) ;
    1. 设置请求头  CURLOPT_HTTPHEADER
    2. 设置post请求数据 CURLOPT_POSTFIELDS
    3. 设置请求头 请求方式 CURLOPT_POST
    4. 设置请求头 CURLOPT_USERAGENT参数
    5. 设置 将获取信息以文件流形式返回 CURLOPT_RETURNTRANSFER

PHP中的数据传输神器cURL_第11张图片

PHP中的数据传输神器cURL_第12张图片

 

 

 

 

  • 用cURL登录慕课网 并下载个人空间页面
    1. 登陆成功之后 重新爬的页面
    2. 登陆之后的跳转页面
    3. 设置cookie
    4. 先执行登录操作

PHP中的数据传输神器cURL_第13张图片

 

 

 

 

 

 

 

 

 

 

  • 用cURL从FTP上下载文件到本地
    1. 关闭资源句柄
    2. 本地打开资源句柄  将下载的文件写入
    3. 设置链接ftp的账号密码
    4. 设置超时时间
    5. 设置URL  目标文件在ftp上的完整路径

PHP中的数据传输神器cURL_第14张图片PHP中的数据传输神器cURL_第15张图片

 

 

 

 

 

 

 

 

 

  • 用cURL从本地上传文件到FTP
    1. 设置ftp链接账号密码curl_setopt($curl, CURLOPT_USERPWD, "root:123456") ;
    2. 超时时间curl_setopt($curl, CURLOPT_TIMEOUT, 300) ;
    3. 设置上传路径
    4. 打开本地将要上传的文件  ---资源句柄$fp = fopen($localfile, 'r') ;
    • 设置本地将要上传的出文件$localfile = 'data.txt' ;

 

    1.  关闭资源句柄fclose($fp) ;
    2. 执行上传 $rtn = curl_exec($curl) ;
    3. 设置上传文件大小curl_setopt($curl, CURLOPT_INFILESIZE, filesize($localfile)) ;
    4. 读取文件地址 (资源类型)curl_setopt($curl, CURLOPT_INFILE, $fp) ;
    5. 开启上传curl_setopt($curl, CURLOPT_UPLOAD, true) ;

PHP中的数据传输神器cURL_第16张图片

 

 

 

 

 

 

 

 

 

  • 用cURL访问HTTPS资源
    1. 终止从服务端进行验证curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0) ;
    2. 设置超时时间  证书有时效性date_default_timezone_set("PRC") ;//时区
    3. 设置资源路径

PHP中的数据传输神器cURL_第17张图片

 

 

 

 

你可能感兴趣的:(计算机,开发,编程)