S Snakes Medlem sedan okt. 2004 392 inlägg Frågan 20 jan. 2005 21:29 #1 Hur kan jag lösa detta?
$mp3 = "http://www.site.com/songname.mp3";
$file2 = "";
$file2 = fopen($mp3,'r');
fseek($file2, -128, SEEK_END);
$tag = fread($file2, 3);
if($tag == "TAG"){
$songtitle = trim(fread($file2, 30));
$artist = trim(fread($file2, 30));
$album = trim(fread($file2, 30));
$year = trim(fread($file2, 4));
$comment = trim(fread($file2, 30));
$genre = $genre_arr[ord(trim(fread($file2, 1)))];
} else {
echo"$mp3 does not contain an ID3v1 tag!";
}
Notera att det finns med fseek där uppe och adressen till mp3 låten börjar på http:// (alltså en annan hemsida).
PHP-manualen skrev:
May not be used on file pointers returned by fopen() if they use the "http://" or "ftp://" formats.
Tackar i förhand!
spango Medlem sedan juni 2000 8 205 inlägg Du får kopiera ner filen till det lokala filsystemet om du vill använda resten av koden omodifierad.
S Snakes Medlem sedan okt. 2004 392 inlägg Jag har inte "råd" med det.... det är inte den ända filen... det finns ett par 100 till!...
spango Medlem sedan juni 2000 8 205 inlägg Jobbigt för dig. Då får du läsa in filen i en sträng, och sedan arbeta med den strängen. Kom ihåg bara att du antagligen inte vill hålla en hel MP3:a i arbetsminnet, men lite smart buffring borde kunna lösa det. Det är dock fortfarande ganska långsamt eftersom hela filen tankas ner via nätverket. Jag tror att det finns något i HTTP-protokollet som låter en tanka ner bara en bestämd del av en fil, men då får du börja använda sockets och göra egna HTTP-anrop etc.
S Snakes Medlem sedan okt. 2004 392 inlägg Och hur gör man det?
Tack för dem snabba svaren förresten!
spango Medlem sedan juni 2000 8 205 inlägg Hur gör man vilket? Läsa in hela filen eller egna HTTP-anrop? För det förra är det bara att kolla på manualen under filhantering (fread är en bra funktion), för det senare, kolla socketsdelen. Båda kräver en del kodning. Ha det så kul! ;)
S Snakes Medlem sedan okt. 2004 392 inlägg Jag har aldrig jobbat med socket... vet inte hur dem fungerar...
Kan du infoga en kod snutte hur det kan se ut med socket...ett exempel...
Om det går bra alltså!
Tack!
spango Medlem sedan juni 2000 8 205 inlägg S Snakes Medlem sedan okt. 2004 392 inlägg Haha... du har väl ingen aning om hur en kod snutte kan se ut?..
Jag har redan läst länken... men jag har fortfarande svårt att hitta hur det kan hjälpa mig.
S Snakes Medlem sedan okt. 2004 392 inlägg Om ingen vet nåt annat sätt... då kan jag hitta på ett själv... men för att göra det måste jag veta vad detta gör
fseek($file2, -128, SEEK_END);
Någon som har en aning om vad /\ det gör???
G GunnarD Medlem sedan juni 2001 4 290 inlägg Flyttar filpekaren 128 bytes från filens slut.
S Snakes Medlem sedan okt. 2004 392 inlägg Finns det inte ett annat sätt och flytta filpekaren???... är fseek det ända sättet???
Ingen som vet nåt?
spango Medlem sedan juni 2000 8 205 inlägg Eftersom det egentligen inte används en filpekare (utan i stället sockets, som är "enkelriktade") när man öppnar filer över http med fopen, så nej.