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 相关文章推荐
用PHP+java实现自动新闻滚动窗口
Oct 09 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
第二章 PHP入门基础之php代码写法
Dec 30 PHP
ThinkPHP之import方法实例详解
Jun 20 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
php查看网页源代码的方法
Mar 13 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
phpstorm 配置xdebug的示例代码
Mar 31 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 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
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
windows环境下使用Composer安装ThinkPHP5
2018/05/18 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
使用D3.js制作图表详解
2017/08/13 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
python文件操作之目录遍历实例分析
2015/05/20 Python
scrapy爬虫实例分享
2017/12/28 Python
Python将多份excel表格整理成一份表格
2018/01/03 Python
Tensorflow环境搭建的方法步骤
2018/02/07 Python
六行python代码的爱心曲线详解
2019/05/17 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
Python 如何创建一个线程池
2020/07/28 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
就业意向书范文
2014/04/01 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
考试作弊检讨
2015/01/27 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
讲解MySQL增删改操作
2022/05/06 MySQL