Avatar billede spamd Nybegynder
25. oktober 2003 - 01:17 Der er 4 kommentarer

md5_file() af delvis fil

Jeg har behov for at beregne md5 summen af nogle store filer - ellere rettere noget af nogle store filer. Noget af starten og slutningen skal nemlig ikke regnes med.

Så vidt jeg kan se, har PHP to md5 funktioner - md5() og md5_file(). Man kunne principielt indlæse filen og fodre den til md5(). Men det bliver lidt af et RAM problem, hvis filen er 600 Mb.

md5_file() kan kun læse hele filer. Min nuværende metode, er at oprette en midlertidig fil og kopiere den relevante del af filen over. Herefter kaldes md5_file() og den midlertidige fil slettes. Det er både grimt og ikke den fedeste løsning.

Der må da være en smartere måde?
Avatar billede billen Nybegynder
25. oktober 2003 - 03:41 #1
Så er det godt at du har de nyttige funktioner:

fopen()
filesize()
fread()
fseek()

til at hjælpe dig. Her er et lille eksempel

<?php

// Åbn en stream til filen
$fd = fopen( "minSTOREfil.mpg", "r" );

// Find størrelsen på den
$length = filesize( "minSTOREfil.mpg" );

// Hent de første 1024 bytes fra filen
$foerste = fread( $fd, 1024 );

// Sæt positionen i filen til længde minus 1024
fseek( $fd, $length - 1024 );

// Indlæs de sidste 1024 bytes
$sidste = fread( $fd, 1024 );

// Luk stream
fclose( $fd );

// MD5???
$md5 = md5( $foerste . md5( $sidste ) );

?>
Avatar billede spamd Nybegynder
26. oktober 2003 - 13:23 #2
Hej billen, jeg har brug for md5 summen af det i midten. Hoved og fod skal ignoreres.
Avatar billede billen Nybegynder
26. oktober 2003 - 22:40 #3
Ok... så skal du jo bare definere hvad "midten" er.
Avatar billede spamd Nybegynder
28. oktober 2003 - 15:46 #4
Det kan være de 898 Mb som er tilbage når 32 kb er fjernet fra hoved og 64 kb fra fod... Ikke så genialt at indlæse 898 Mb i RAM.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester