chromium/third_party/blink/web_tests/http/tests/sendbeacon/resources/save-beacon.php

<?php
require_once '../../resources/portabilityLayer.php';

function prettify($name) {
   return str_replace(' ', '-', ucwords(str_replace('_', ' ', str_replace('http_', '', strtolower($name)))));
}

$beaconFilename = sys_get_temp_dir() . "/beacon" . (isset($_REQUEST['name']) ? $_REQUEST['name'] : "") . ".txt";
$beaconFile = fopen($beaconFilename . ".tmp", 'w');
$httpHeaders = $_SERVER;
ksort($httpHeaders, SORT_STRING);
$contentType = "";
foreach ($httpHeaders as $name => $value) {
    if ($name === "CONTENT_TYPE" || $name === "HTTP_REFERER" || $name === "REQUEST_METHOD" || $name === "HTTP_COOKIE" || $name === "HTTP_ORIGIN") {
        if ($name === "CONTENT_TYPE") {
            $contentType = $value;
            $value = preg_replace('/boundary=.*$/', '', $value);
        }
        $headerName = prettify($name);
        fwrite($beaconFile, "$headerName: $value\n");
    }
}
$postdata = file_get_contents("php://input");
if (strlen($postdata) == 0)
   $postdata = http_build_query($_POST);

fwrite($beaconFile, "Length: " . strlen($postdata) . "\n");
if (strpos($contentType, "application/") !== false) {
    $postdata = base64_encode($postdata);
}

fwrite($beaconFile, "Body: $postdata\n");
fclose($beaconFile);
rename($beaconFilename . ".tmp", $beaconFilename);

if (!array_key_exists('dontclearcookies', $_GET)) {
  foreach ($_COOKIE as $name => $value)
      setcookie($name, "deleted", time() - 60, "/");
}
?>