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开发者的10个技巧
Feb 25 PHP
PHP文件注释标记及规范小结
Apr 01 PHP
php获取twitter最新消息的方法
Apr 14 PHP
php语言的7种基本的排序方法
Dec 28 PHP
PHP递归实现层级树状展开
Apr 01 PHP
php制作简单模版引擎
Apr 07 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 PHP
详解php中空字符串和0之间的关系
Oct 23 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 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
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
JavaScript实现的浏览器下载文件的方法
2017/08/09 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python日期的加减等操作的示例
2017/08/15 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
使用Python实现分别输出每个数组
2019/12/06 Python
python定义类self用法实例解析
2020/01/22 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
python db类用法说明
2020/07/07 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
网站设计师的岗位职责
2013/11/21 职场文书
好人好事事迹材料
2014/02/12 职场文书
环卫工作汇报材料
2014/10/28 职场文书
军事博物馆观后感
2015/06/05 职场文书