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 中的类
Oct 09 PHP
PHPShop存在多个安全漏洞
Oct 09 PHP
php读取30天之内的根据算法排序的代码
Apr 06 PHP
PHP伪静态Rewrite设置之APACHE篇
Jul 30 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
Nov 20 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
Mar 16 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
Aug 29 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
php读取和保存base64编码的图片内容
Apr 22 PHP
php反射学习之不用new方法实例化类操作示例
Jun 14 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
Aug 03 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 PDO函数库详解
2010/04/27 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
php header功能的使用
2013/10/28 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
重命名批处理python脚本
2013/04/05 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
python如何使用代码运行助手
2020/07/03 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
高中打架检讨书
2014/02/13 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
开会通知短信大全
2015/04/20 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
南极大冒险观后感
2015/06/05 职场文书
会计主管竞聘书
2015/09/15 职场文书
Python+Appium新手教程
2021/04/17 Python