Hallo.
Ich bastele gerade an einem kleinen Musik Verwaltungsscript für mich.
Das folgende Script soll die ID3 auslesen.
Das klappt auch bestens. Leider sind in manchen Titeln PHP sonderzeichen also die ''' . Dort meldet MySql natürlich fehler beim eintragen.
Kann mann das irgendwie lösen?
Stehe da im momant arg auf dem Schlauch
Hier die Funktion
Hier der aufruf der Funktion und die auswertung
Ich bastele gerade an einem kleinen Musik Verwaltungsscript für mich.
Das folgende Script soll die ID3 auslesen.
Das klappt auch bestens. Leider sind in manchen Titeln PHP sonderzeichen also die ''' . Dort meldet MySql natürlich fehler beim eintragen.
Kann mann das irgendwie lösen?
Stehe da im momant arg auf dem Schlauch
Hier die Funktion
PHP-Code:
<?php
function mp3info($file)
{
$fp = fopen($file, "rb");
if (!$fp) return 0;
// Try to find ID3v1.x
fseek($fp, filesize($file)-128);
$id3v1 = fread($fp, 128);
if (substr($id3v1, 0, 3) == "TAG")
{ // Yay!
$mp3[title] = trim(substr($id3v1, 3, 30));
$mp3[artist] = trim(substr($id3v1, 33, 30));
$mp3[album] = trim(substr($id3v1, 63, 30));
$mp3[year] = trim(substr($id3v1, 93, 4));
if (substr($id3v1, 125, 1) == "\0" && substr($id3v1, 126, 1) != "\0")
{ // we got a ID3v1.1 here
$mp3[comment] = trim(substr($id3v1, 97, 29));
$mp3[track] = ord(substr($id3v1, 126, 1));
}
else
{ // old ID3v1
$mp3[comment] = trim(substr($id3v1, 97, 30));
}
$mp3[genre] = ord(substr($id3v1, 127, 1));
}
else $mp3 = 0;
fclose($fp);
return $mp3;
}
?>
PHP-Code:
<?
include("musikfunction.inc.php"); // angenommen die mp3info() steht in dieser Datei
include("musik.inc.php");
$verzeichnis = "/home/ftpserver/musik/";
$dir = opendir($verzeichnis);
while($datei = readdir($dir)) {
if (is_file($verzeichnis.$datei) && (substr($datei, -3, 3) == "mp3"))
{
$info = mp3info($verzeichnis.$datei);
if ($info) echo "Datei: $datei<br>Artist: $info[artist]<br>Title:
$info[title]<br>Album: $info[album]<br><br>";
$res = mysql_query
("INSERT INTO titel (dateiname, titel, artist)
VALUES
('$datei', '$info[artist]','$info[title]')") or die(mysql_error());
}
}
?>
Kommentar