Mercurial > ec-dotfiles
view bin/ed2k @ 744:8d3ad5ae1ce4 default tip
[ed2k] better? function organization and usage of argv
author | nanaya <me@nanaya.net> |
---|---|
date | Wed, 05 Feb 2025 17:14:38 +0900 |
parents | bcdf320dabf4 |
children |
line wrap: on
line source
#!/usr/bin/env php <?php function ed2k_hash(string $path): string { // ed2k hash is an md4 hash of concatenated binary md4 hashes of 9500 KiB file chunks. static $bs = 9500 * 1024; $hash = ''; $fp = fopen($path, 'rb'); while (!feof($fp)) { $hash .= hash('md4', fread($fp, $bs), true); } fclose($fp); return hash('md4', $hash); } function main(): void { $files = $_SERVER['argv']; array_shift($files); foreach ($files as $path) { $hash = ed2k_hash($path); $filename = basename($path); $filesize = filesize($path); echo "ed2k://|file|{$filename}|{$filesize}|{$hash}|", PHP_EOL; } } main();