侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

一波PHP中cURL库的常见用法代码示例

php  /  管理员 发布于 7年前   151

php 的CURL是不错的功能,下面收藏几段不错的片段

0、基本例子
一般流程:

$to_url=$_GET['url'];print_r($_GET);if(substr($to_url,0,1)=='/'){ $to_url="http://www.amazon.com".$to_url;}echo $to_url;//初始化$ch = curl_init();//设置选项,包括URLcurl_setopt($ch, CURLOPT_URL, $to_url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);//执行并获取HTML文档内容$output = curl_exec($ch);$output=preg_replace("#href=\"#","href=\"http://in2.qq-ex.com/amazon.php?url=",$output);// 释放curl句柄curl_close($ch);echo $output;// 指定代理地址curl_setopt($ch, CURLOPT_PROXY, '11.11.11.11:8080');// 如果需要的话,提供用户名和密码curl_setopt($ch, CURLOPT_PROXYUSERPWD,'user:pass');

1、测试网站是否运行正常

 if (isDomainAvailible('http://gz.itownet.cn'))   {     echo "Up and running!";   }   else   {     echo "Woops, nothing found there.";   }    //returns true, if domain is availible, false if not   function isDomainAvailible($domain)   {     //check, if a valid url is provided     if(!filter_var($domain, FILTER_VALIDATE_URL))     {       return false;     }      //initialize curl     $curlInit = curl_init($domain);     curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);     curl_setopt($curlInit,CURLOPT_HEADER,true);     curl_setopt($curlInit,CURLOPT_NOBODY,true);     curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);      //get answer     $response = curl_exec($curlInit);      curl_close($curlInit);      if ($response) return true;      return false;   } 

2、可以代替file_gecontents的操作

function file_get_contents_curl($url) {  $ch = curl_init();   curl_setopt($ch, CURLOPT_HEADER, 0);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser.  curl_setopt($ch, CURLOPT_URL, $url);   $data = curl_exec($ch);  curl_close($ch);   return $data; } 

3、保存某个网站下的所有图片

 function getImages($html) {  $matches = array();  $regex = '~http://somedomain.com/images/(.*?)\.jpg~i';  preg_match_all($regex, $html, $matches);  foreach ($matches[1] as $img) {   saveImg($img);  } }  function saveImg($name) {  $url = 'http://somedomain.com/images/'.$name.'.jpg';  $data = get_data($url);  file_put_contents('photos/'.$name.'.jpg', $data); }  $i = 1; $l = 101;  while ($i < $l) {  $html = get_data('http://somedomain.com/id/'.$i.'/');  getImages($html);  $i += 1; } 

4、FTP应用

// open a file pointer $file = fopen("/path/to/file", "r");  // the url contains most of the info needed $url = "ftp://username:[email protected]:21/path/to/new/file";  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // upload related options curl_setopt($ch, CURLOPT_UPLOAD, 1); curl_setopt($ch, CURLOPT_INFILE, $fp); curl_setopt($ch, CURLOPT_INFILESIZE, filesize("/path/to/file"));  // set for ASCII mode (e.g. text files) curl_setopt($ch, CURLOPT_FTPASCII, 1);  $output = curl_exec($ch); curl_close($ch); 

5、使用curl发送JSON数据

$data = array("name" => "Hagrid", "age" => "36");           $data_string = json_encode($data);         $ch = curl_init('http://api.local/rest/users');curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, array(    'Content-Type: application/json',       'Content-Length: ' . strlen($data_string)) ); $result = curl_exec($ch); 

您可能感兴趣的文章:

  • php之curl设置超时实例
  • php之curl实现http与https请求的方法
  • PHP扩展CURL的用法详解
  • PHP CURL获取返回值的方法
  • PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
  • php使用curl访问https示例分享
  • PHP curl 获取响应的状态码的方法
  • PHP CURL获取cookies模拟登录的方法
  • PHP CURL CURLOPT参数说明(curl_setopt)
  • PHP中使用cURL实现Get和Post请求的方法
  • php中使用Curl、socket、file_get_contents三种方法POST提交数据
  • php运行出现Call to undefined function curl_init()的解决方法
  • 无法加载php_curl.dll解决办法
  • php的curl实现get和post的代码


  • 上一条:
    PHP检测链接是否存在的代码实例分享
    下一条:
    PHP实现的简单分页类及用法示例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客