Site Tools


Hotfix release available: 2025-05-14b "Librarian". upgrade now! [56.2] (what's this?)
Hotfix release available: 2025-05-14a "Librarian". upgrade now! [56.1] (what's this?)
New release available: 2025-05-14 "Librarian". upgrade now! [56] (what's this?)
prog:php:functions:dump_http_request
<?php
 
 
class DumpHTTPRequestToFile {
 
    public function execute($targetFile) {
        $headers = $this->getHeaderList();
        $curl_headers = "";
        foreach ($headers as $name => $value) {
            $curl_headers .= " -H '{$name}: {$value}'";
        }
 
        $raw_input_data = file_get_contents('php://input');
 
        $curl = "curl -X {$_SERVER['REQUEST_METHOD']} '{$_SERVER['HTTP_REFERER']}' $curl_headers  --data-raw '{$raw_input_data}'";
 
        $header_dump = var_export($headers, true);
 
        file_put_contents(
            $targetFile,
            "cURL:\n$curl\n\nHeaders:\n$header_dump\n\nRaw data:\n$raw_input_data"
        );
    }
 
    private function getHeaderList() {
        $headerList = [];
        foreach ($_SERVER as $name => $value) {
            if (preg_match('/^HTTP_/',$name)) {
                // convert HTTP_HEADER_NAME to Header-Name
                $name = strtr(substr($name,5),'_',' ');
                $name = ucwords(strtolower($name));
                $name = strtr($name,' ','-');
 
                // add to list
                $headerList[$name] = $value;
            }
        }
 
        return $headerList;
    }
}
 
 
(new DumpHTTPRequestToFile)->execute('/tmp/saved_request_data.txt');
prog/php/functions/dump_http_request.txt · Last modified: 2021/12/11 23:21 by rene