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 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
PHP form 表单传参明细研究
Jul 17 PHP
php学习之运算符相关概念
Jun 09 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 PHP
Smarty中常用变量操作符汇总
Oct 27 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
Yii2框架使用计划任务的方法
May 25 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
Feb 15 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
laravel接管Dingo-api和默认的错误处理方式
Oct 25 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 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
大师制作的中短波矿石收音机
2020/04/02 无线电
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
python统计一个文本中重复行数的方法
2014/11/19 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
pycharm创建一个python包方法图解
2019/04/10 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
Python中Unittest框架的具体使用
2019/08/27 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
Django中Aggregation聚合的基本使用方法
2020/07/09 Python
惠普香港官方商店:HP香港
2019/04/30 全球购物
2014元旦晚会策划方案
2014/02/19 职场文书
送餐员岗位职责范本
2014/02/21 职场文书
农业项目建议书
2014/08/25 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
学前教育见习总结
2015/06/23 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
导游词之河北野三坡
2019/12/11 职场文书
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js