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 相关文章推荐
apache+php完美解决301重定向的两种方法
Jun 08 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
关于crontab的使用详解
Jun 24 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
php格式化日期和时间格式化示例分享
Feb 24 PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
php生成无限栏目树
Mar 16 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
laravel请求参数校验方法
Oct 10 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
PHP去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
Python中的异常处理学习笔记
2015/01/28 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
python实现烟花小程序
2019/01/30 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
Pat McGrath Labs官网:世界上最有影响力的化妆师推出的彩妆品牌
2018/01/07 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
社区志愿者心得体会
2014/01/03 职场文书
干部培训自我鉴定
2014/01/22 职场文书
安全资金保障制度
2014/01/23 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
青年标兵事迹材料
2014/08/16 职场文书
党员学习群众路线教育实践活动对照检查材料
2014/09/23 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
python微信智能AI机器人实现多种支付方式
2022/04/12 Python