php生成curl命令行的方法


Posted in PHP onDecember 14, 2015

本文实例讲述了php生成curl命令行的方法。分享给大家供大家参考,具体如下:

示例:
curl "http://localhost/other/serverInfo.php?dd=ddd" -H "Host:localhost" -H "Connection:keep-alive" -H "Cache-Control:max-age=0" -H "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36" -H "DNT:1" -H "Accept-Encoding:deflate, sdch" -H "Accept-Language:zh-CN,zh;q=0.8,en;q=0.6" -H "Cookie:name=richie; email=richie@qq.com"

具体代码如下:

function getCurlCommand()
{
 try {
  if (php_sapi_name() == 'error cli'){
   throw new Exception("cli");
  }
  $curlCommand = 'curl ';
  $postData = $getData = '';
  if($_GET) {
   $gets = http_build_query($_GET);
   $getData .= strpos($curlCommand, '?') ? '&' . $gets : '?' . $gets;
  }
  if ($_SERVER['REQUEST_METHOD'] == 'POST' ) {
   $posts = http_build_query($_POST);
   $postData = ' -d "' . $posts . '"';
  }
  $path = isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : $_SERVER['PHP_SELF'];
  $curlCommand .= '"' . "http://{$_SERVER['HTTP_HOST']}" . $path . $getData . '"';
  if ($postData) {
   $curlCommand .= $postData;
  }
  $headers = array();
  if (function_exists('getallheaders')) {
   $headers = getallheaders();
  } else {
   foreach ($_SERVER as $name => $value) {
    if (substr($name, 0, 5) == 'HTTP_') {
     $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
    }
   }
  }
  foreach ($headers as $key => $value) {
   if($key == 'Accept-Encoding') $value = str_replace('gzip, ','',$value);
   $curlCommand .= ' -H "' . $key . ':' . $value . '"';
  }
  return $curlCommand;
 } catch (Exception $e) {
  return $e->getMessage();
 }
}
echo getCurlCommand();

希望本文所述对大家php程序设计有所帮助。

PHP 相关文章推荐
基于文本的留言簿
Oct 09 PHP
PHP3 safe_mode 失效漏洞
Oct 09 PHP
PHP5中的时间相差8小时的解决办法
Mar 28 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
解析php利用正则表达式解决采集内容排版的问题
Jun 20 PHP
php 伪静态之IIS篇
Jun 02 PHP
php密码生成类实例
Sep 24 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
CI框架中数据库操作函数$this->db->where()相关用法总结
May 17 PHP
thinkphp配置文件路径的实现方法
Aug 30 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 #PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 #PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
Dec 14 #PHP
php类中的$this,static,final,const,self这几个关键字使用方法
Dec 14 #PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 #PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 #PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 #PHP
You might like
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
如何用PHP实现插入排序?
2013/04/10 PHP
简单实用的.net DataTable导出Execl
2013/10/28 PHP
PHP获取windows登录用户名的方法
2014/06/24 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
使用python 获取进程pid号的方法
2014/03/10 Python
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
Python如何用filter函数筛选数据
2020/03/05 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
介绍一下游标
2012/01/10 面试题
女生节标语
2014/06/26 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
个人年底工作总结
2015/03/10 职场文书
入党介绍人意见2015
2015/06/01 职场文书
求职信如何撰写?
2019/05/22 职场文书