webForumDet fria alternativet

Identifiering av mp3-fil med hjälp av PHP

PHP

3 svar · 350 visningar · startad av Prime_66

Medlem sedan aug. 2004290 inlägg
Frågan#1

Jag jobbar med en webportal där man kan ladda upp musik i mp3-format. Av säkerhetsskäl vill jag ha en funktion som kan kontrollera om filen som laddas upp verkligen är en mp3-fil och inte nått virus eller annat oönskat crap.

Jag har märkt om jag öppnar en mp3-fil i rent text-format så startar de alltid (i alla fall de filer jag har kollat) med de två tecknena ÿû. Om jag gör ett php-script som öppnar filen och läser de två första tecknenas och kollar så de är just ÿû. Har jag då en bra lösning på mitt problem? Eller finns det andra smartare sätt? Om min idé är bra skulle jag gärna vilja ha lite hjälp om hur man öppnar filer i php och kontrollerar tecken.

Medlem sedan juni 20008 205 inlägg
#2

Ja, det är funkis, det är t.o.m. ett relativt beprövat sätt att identifiera format på. För att öppna filer används fopen och fread:
http://se2.php.net/manual/en/function.fopen.php
http://se2.php.net/manual/en/function.fread.php

Medlem sedan aug. 200412 inlägg
#3

Du kan testa med detta:

$fp=@fopen("carola.mp3", "rb"); # öppnar mp3-filen
$test = fread($fp, 2); # läser de 2 första byten till en sträng
fclose($fp);
print "TECK1: (".ord($test{0}).")<br>"; # asciikod första byten
print "TECK2: (".ord($test{1}).")<br>"; # asciikod andra byten
if (ord($test{0}) == 210 && ord($test{1}) == 220){
print "2 första byten innehåller ascii(210) följt av ascii(220)";
}else{
print "2 första byten innehåller INTE tecknen i fråga";
}
...om det nu var så att alla mp3 börjar med ascii 210 och 220. Du får kolla på ett antal mp3 och kolla vad dom börjar med.

Mvh Mi Cro

Medlem sedan aug. 2004290 inlägg
#4

Thanx miccro. hajar principen :e

261 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)