This can be obvious, but hash_update_stream() move file pointer. So, use rewind(), if you plan to read the file after hashing.
(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_update_stream — Ajoute des données dans un contexte de hachage actif d'un flux ouvert
context
Contexte de hachage retourné par hash_init().
stream
Identifiant de fichier ouvert comme retourné par n'importe quelle fonction de création de flux.
length
Taille maximale de caractères à copier de stream
dans le contexte de hachage.
Nombre actuel d'octets ajoutés au contexte de hachage de
stream
.
Exemple #1 Exemple avec hash_update_stream()
<?php
$fp = tmpfile();
fwrite($fp, 'jumped over the lazy dog.');
rewind($fp);
$ctx = hash_init('sha256');
hash_update($ctx, 'The quick brown fox ');
hash_update_stream($ctx, $fp);
echo hash_final($ctx);
?>
L'exemple ci-dessus va afficher :
68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483
This can be obvious, but hash_update_stream() move file pointer. So, use rewind(), if you plan to read the file after hashing.