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 相关文章推荐
BBS(php & mysql)完整版(五)
Oct 09 PHP
一段php加密解密的代码
Jul 16 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
Sep 28 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
php+html5实现无刷新图片上传教程
Jan 22 PHP
php实现按天数、星期、月份查询的搜索框
May 02 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 PHP
微信接口生成带参数的二维码
Jul 31 PHP
Laravel中服务提供者和门面模式的入门介绍
Nov 06 PHP
php在linux环境中如何使用redis详解
Dec 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
php smarty模版引擎中的缓存应用
2009/12/11 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
JS中的==运算: [''] == false —>true
2016/07/24 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
在Django的视图中使用form对象的方法
2015/07/18 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
Django框架视图层URL映射与反向解析实例分析
2019/07/29 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
python中_del_还原数据的方法
2020/12/09 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
美国第一香水网站:Perfume.com
2017/01/23 全球购物
心得体会开头
2014/01/01 职场文书
鸿星尔克广告词
2014/03/21 职场文书
总经理任命书范本
2014/06/05 职场文书
授权委托书格式
2014/07/31 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
初中政治教学反思
2016/02/23 职场文书
修改并编译golang源码的操作步骤
2021/07/25 Golang