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中使用sockets:从新闻组中获取文章
Oct 09 PHP
PHP实现MVC开发得最简单的方法――模型
Apr 10 PHP
PHP中通过语义URL防止网站被攻击的方法分享
Sep 08 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
Yii框架中memcache用法实例
Dec 03 PHP
php字符串函数学习之substr()
Mar 27 PHP
PHP处理postfix邮件内容的方法
Jun 16 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
php json相关函数用法示例
Mar 28 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 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 nl2br函数 将换行字符转成 <br>
2009/08/21 PHP
php 上传功能实例代码
2010/04/13 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
设定php简写功能的方法
2019/11/28 PHP
网上抓的一个特效
2007/05/11 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
2016/12/19 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
浅析Angular19 自定义表单控件
2018/01/31 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
Python实现快速多线程ping的方法
2015/07/15 Python
Python正则表达式使用范例分享
2016/12/04 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
python中bytes和str类型的区别
2019/10/21 Python
利用python实现AR教程
2019/11/20 Python
结束运行python的方法
2020/06/16 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
幼儿园教研活动方案
2014/01/19 职场文书
终止劳动合同协议书
2014/04/14 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
Java 多线程协作作业之信号同步
2022/05/11 Java/Android
cypress测试本地web应用
2022/06/01 Javascript