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


Posted in PHP onMay 06, 2016

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();
//设置选项,包括URL
curl_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:password@mydomain.com: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 相关文章推荐
PHPlet在Windows下的安装
Oct 09 PHP
PHP的FTP学习(一)
Oct 09 PHP
php Static关键字实用方法
Jun 04 PHP
定义php常量的详解
Jun 09 PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
Dec 29 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
Symfony2函数用法实例分析
Mar 18 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
Feb 20 PHP
PHP实现的简单分页类及用法示例
May 06 #PHP
PHP实现的多文件上传类及用法示例
May 06 #PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 #PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 #PHP
PHP递归遍历多维数组实现无限分类的方法
May 06 #PHP
PHP图片加水印实现方法
May 06 #PHP
php数组冒泡排序算法实例
May 06 #PHP
You might like
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
linux下php上传文件注意事项
2016/06/11 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
js单词形式的运算符
2014/05/06 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
[01:20:06]TNC vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
Python如何实现定时器功能
2020/05/28 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
环境工程专业个人求职信
2013/12/05 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
检讨书怎么写
2015/05/07 职场文书
负责培养人意见
2015/06/05 职场文书
英文投诉信格式
2015/07/03 职场文书