`
OrangeHolic
  • 浏览: 260914 次
  • 来自: 北京
社区版块
存档分类
最新评论

服务器端PHP生成curl命令行

    博客分类:
  • PHP
php 
阅读更多
记录请求到log,为了方便后续排查问题,在PHP里调用一个方法,实现将curl串记录下来即可方便复现请求。

<?php
/**
 * Author: xishizhaohua@qq.com
 * Date: 2015/11/2
 * 
 */
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();










eg:
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=shikiliu; email=xishizhaohua%40qq.com”
分享到:
评论

相关推荐

    curl8.2.1+openssl3.0.1.zip

    在网络安全中,openssl广泛应用于服务器端和客户端的加密通信,确保数据在传输过程中的安全。 当curl与openssl结合使用时,curl可以利用openssl库进行HTTPS通信,实现安全的Web请求。在curl-8.2.1.tar.gz中,包含了...

    Linux系统安装php扩展cURL.doc

    在Linux系统中,PHP是一种广泛使用的服务器端脚本语言,用于创建动态网页和应用程序。为了增强PHP的功能,我们可以安装各种扩展,其中cURL是一个特别有用的扩展,它允许PHP程序与各种网络协议(如HTTP、FTP、SMTP等...

    基于PHP与Linux的远程管理系统服务器端设计与代码实现

    在构建基于PHP与Linux的远程管理系统服务器端时,我们需要深入理解这两个关键技术的原理以及它们如何协同工作以实现高效、安全的远程管理。首先,PHP(Hypertext Preprocessor)是一种广泛应用的开源脚本语言,主要...

    蓝奏云网盘直链解析PHP源码

    PHP是一种服务器端脚本语言,广泛用于Web开发,可以嵌入到HTML中,生成动态网页内容。在网络编程中,PHP可以通过cURL库来发起HTTP请求,与远程服务器进行通信。 CURL (Client URL Library) 是一个命令行工具和库,...

    PHP中使用curl伪造IP的简单方法

    在互联网技术中,curl是一个广泛使用的命令行工具,它支持多种协议进行数据传输。PHP中使用curl可以通过设置特定的HTTP头部信息,实现伪造IP地址的目的。这种方法主要是利用HTTP头部中的某些字段来欺骗服务器,从而...

    php-5.3.10-Win32-VC9-x64

    这个版本是PHP 5.3.10,一个广泛使用的开源服务器端脚本语言,主要用于Web开发,使开发者能够创建动态交互式网站。"Win32-VC9-x64"这部分表明它是为32位Windows系统(尽管名称中有“Win32”,但它实际上是为64位系统...

    PHP for Windows

    随着时间的推移,PHP发展成为一种功能强大的Web开发工具,支持多种数据库连接、动态内容生成以及与其他服务器端语言的集成。PHP的特点包括: 1. 开源免费:PHP遵循GPL(GNU General Public License)协议,任何人都...

    gd2.32&libxml2&zendoptiom&zlib1.2.3&jpegsrc&libpng&curl.rar

    Libxml2库广泛应用于各种需要处理XML数据的项目中,如服务器端脚本、文档转换和数据交换等。 3. **Zend Optimizer(ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz)**:Zend Optimizer是PHP应用的性能提升工具,...

    PHP结合shell实现对服务器的基本管理

    在IT行业中,PHP是一种广泛应用的服务器端脚本语言,尤其在网页开发中占据了重要的地位。而Shell则是Linux或Unix系统中的命令行解释器,用于执行系统命令和脚本。将PHP与Shell结合,可以实现对服务器的自动化管理和...

    php curl 上传文件代码实例

    在示例中,`upload.php` 是服务器端处理文件上传的脚本。它会接收到通过POST方式传递的`$_POST`和`$_FILES`数组,可以从中提取文件信息并进行相应的操作。 7. **安全性与性能**: - 文件上传时要确保文件来源可靠...

    PHP基于Linux的远程管理系统客户端的实现(源代码+论文)

    首先,我们要了解PHP,这是一种广泛用于Web开发的服务器端脚本语言。它以其易学性和灵活性著称,能够与各种数据库系统集成,如MySQL,支持HTTP、FTP等多种协议,非常适合构建动态网页和Web应用程序。在本项目中,PHP...

    基于PHP CURL获取邮箱地址的详解

    PHP是一种广泛使用的开源脚本语言,特别适合于网页开发和服务器端编程。而CURL是一个强大的命令行工具和库,用于在多种协议下进行文件传输。在PHP中,使用cURL库可以模拟浏览器行为,发送请求到服务器,获取响应内容...

    linux php7.0.22

    首先,PHP(Hypertext Preprocessor)是一种开源的服务器端脚本语言,广泛用于Web开发,能够嵌入到HTML中,实现动态网页生成。PHP7.0.22是PHP7系列的一个稳定版本,发布于2017年,带来了许多性能提升和新特性,例如...

    centos6系统 编译php5.6 的mongodb.so文件

    MongoDB是一种流行的NoSQL数据库,而PHP是常用的服务器端脚本语言,MongoDB扩展使得PHP能够与MongoDB数据库进行交互。下面将详细介绍如何在CentOS 6上编译和安装PHP 5.6的mongodb.so扩展。 首先,确保系统已安装了...

    PHP实例开发源码—sogourank查询工具php版.zip

    它支持服务器端编程,可以处理HTML、CSS、JavaScript等,用于构建动态网页和应用程序。在这个项目中,PHP被用来与搜狗搜索引擎接口交互,获取并解析排名数据。 【压缩包子文件的文件名称列表】: 1. **使用须知.txt...

    IP地址查询php版.zip

    2. **PHP**:全称“Hypertext Preprocessor”,是一种开源的、跨平台的服务器端脚本语言,主要用作网页开发,但也可用于命令行和通用编程。PHP可以嵌入HTML中,提供动态内容生成、数据库交互等功能。 3. **网络协议...

    细说PHP的LAMP安装包大全

    这个库用于在服务器端处理XML数据并转换成HTML或其他格式。 4. **unixODBC-2.2.14-p2.tar.gz**:UnixODBC是一个开放源码的ODBC(Open Database Connectivity)驱动程序管理器,它允许在Unix和Linux系统上连接到各种...

    基于PHP的网站收录查询工具php版.zip

    【标签】:“PHP”是标记此工具使用的主要技术,这是一种广泛应用于Web开发的服务器端脚本语言。PHP支持丰富的函数库,具有良好的可扩展性,能够轻松与数据库(如MySQL、SQLite等)集成,处理HTTP请求,生成动态网页...

    PHP 中文版手册

    PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在Web开发领域中,它被用于服务器端编程,能够生成动态网页内容。PHP语法简洁,学习曲线相对平缓,因此深受开发者喜爱。中文版手册为国内PHP开发者...

    毕业论文设计-IT计算机-PHP基于Linux的远程管理系统客户端的实现(源代码+论文).zip

    1. PHP基础:PHP是“PHP: Hypertext Preprocessor”的缩写,是一种服务器端的、跨平台的、用于生成动态网页内容的脚本语言。理解PHP的基本语法、变量、控制结构、函数、数组以及文件操作是构建此系统客户端的关键。 ...

Global site tag (gtag.js) - Google Analytics