How to create a list of random file names, including extension, dates, and file size in PHP

1 Answer

0 votes
// Function to generate a random string of given length
function generateRandomString(int $length): string {
    $bytes = random_bytes($length);
    $charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $result = '';

    foreach (str_split($bytes) as $b) {
        $result .= $charset[ord($b) % strlen($charset)];
    }

    return $result;
}

// Function to generate a random date
function generateRandomDate(): string {
    $year  = random_int(2000, 2020); // Random year between 2000 and 2020
    $month = random_int(1, 12);      // Random month between 1 and 12
    $day   = random_int(1, 28);      // Random day between 1 and 28

    return sprintf('%04d-%02d-%02d', $year, $month, $day);
}

// Function to generate a random file size
function generateRandomFileSize(): int {
    return random_int(1, 100000); // Random file size between 1 and 100000 bytes
}

$extensions = ['.txt', '.jpg', '.png', '.cpp', '.pdf'];
$numberOfFiles = 10;
$fileLength = 9;

for ($i = 0; $i < $numberOfFiles; $i++) {
    $fileName = generateRandomString($fileLength);
    $extension = $extensions[array_rand($extensions)];
    $date = generateRandomDate();
    $fileSize = generateRandomFileSize();

    echo "{$fileName}{$extension} {$date} {$fileSize} bytes\n";
}



/*
run:

7NMA0AMd1.txt 2017-04-02 31059 bytes
l9yccOFue.cpp 2013-06-22 93711 bytes
U2zaVbKPZ.cpp 2016-05-20 96622 bytes
EowfiiJK1.jpg 2014-09-17 94504 bytes
j2JNqDcOR.jpg 2015-07-12 35133 bytes
WkYgLBh0E.jpg 2009-08-16 20852 bytes
qO8qB7Czf.png 2015-03-20 34394 bytes
zvLkdKbm8.png 2017-01-10 7299 bytes
EtSnIE4VW.cpp 2007-03-11 12605 bytes
WtZ5IWU0N.png 2014-06-24 16367 bytes

*/

 



answered 4 hours ago by avibootz

Related questions

...