时间:2010-07-25 05:41:22

标签: php

4 个答案:

答案 0 :(得分:53)

答案 1 :(得分:18)

我认为现在这种方法更容易,更快:

$req_dump = print_r($_REQUEST, true);
$fp = file_put_contents('request.log', $req_dump, FILE_APPEND);

答案 2 :(得分:5)

答案 3 :(得分:0)

/* may be late but he can help others.
it's not my code, I get it from : 
https://gist.github.com/magnetikonline/650e30e485c0f91f2f40
*/

            class DumpHTTPRequestToFile {
                public function execute($targetFile) {
                    $data = sprintf(
                        "%s %s %s\n\nHTTP headers:\n",
                        $_SERVER['REQUEST_METHOD'],
                        $_SERVER['REQUEST_URI'],
                        $_SERVER['SERVER_PROTOCOL']
                    );
                    foreach ($this->getHeaderList() as $name => $value) {
                        $data .= $name . ': ' . $value . "\n";
                    }
                    $data .= "\nRequest body:\n";
                    file_put_contents(
                        $targetFile,
                        $data . file_get_contents('php://input') . "\n"
                    );
                    echo("Done!\n\n");
                }
                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('./dumprequest.txt');

            // add this line at the end to create a file for each request with timestamp

            $date = new DateTime();
            rename("dumprequest.txt", "dumprequest" . $date->format('Y-m-d H:i:sP') . ".txt");