PHP Simulate a slow download of a file; curl -o /dev/null

<?php
// server.php
$content_length_bytes = 1e6; // 1 megabyte.
$content_length_bytes *= 3;

// Send binary file header.
header('Content-Type: application/octet-stream');
header('Content-Length: ' . $content_length_bytes);
header('Content-Disposition: attachment; filename="somefile.bin"');

$bytes = 1000;
$length = $content_length_bytes / $bytes;
$str = str_repeat('.', $bytes);
$micro_seconds = 20000;

for ($i = 0; $i < $length; $i++) {
    echo $str;

    // Slow the download.
    usleep($micro_seconds);
}

Start the server.

$ php -S 127.0.0.1:8080 server.php

Show the download progress including Total, Received, Xferd, Average Dload, Speed Upload, Time Total, Time Spent, Time Left, Current Speed:

curl -i http://127.0.0.1:8080/server.php -o /dev/null

Comments

Leave a Reply