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 相关文章推荐
一个很方便的 XML 类!!原创的噢
Oct 09 PHP
利用PHP制作简单的内容采集器的代码
Nov 28 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 PHP
PHP的变量总结 新手推荐
Apr 18 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
PHP程序员必须知道的两种日志实例分析
May 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
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
文本框的字数限制功能jquery插件
2009/11/24 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
javascript每日必学之循环
2016/02/19 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
python编程实现归并排序
2017/04/14 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
Python实现简单http服务器
2018/04/12 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
如何给Python代码进行加密
2020/01/10 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
文艺演出策划方案
2014/06/07 职场文书
看上去很美观后感
2015/06/10 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python