Si c'est juste pour avoir la taille du fichier, utilise fread, car si par exemple tu as un fichier de 1024 caractères avec un retour chariot tout les 10 caractères, faudrait faire au moins 10 fois fgets($fd, 1024) alors qu'un fread($fd, 1024) suffira. On utilise fgets principalement pour lire un fichier de texte, genre un dump d'une base de donnée, qui doit être traité ligne par ligne.
Sous Windows, n'oublie pas le 'b' lors du fopen (cf doc), et là fread est obligatoire car fgets prend le caractère h00 (il me semble) comme une fin de fichier.