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 Static关键字实用方法
Jun 04 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
Oct 23 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
Sep 16 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
php简单获取目录列表的方法
Mar 24 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
ucenter中词语过滤原理分析
Jul 13 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
Nov 13 PHP
PHP实现考试倒计时功能代码
Apr 16 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 设计模式之 单例模式
2008/12/19 PHP
浅析PHP 按位与或 (^ 、&)
2013/06/21 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
node中Express 动态设置端口的方法
2017/08/04 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Python多线程编程(一):threading模块综述
2015/04/05 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
Django框架 信号调度原理解析
2019/09/04 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
英语教育专业自荐信
2014/05/29 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
爱心捐款感谢信
2015/01/20 职场文书
颐和园英文导游词
2015/01/30 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python