Problem beim lesen von mp3-Dateien in einem Subfolder

Radhad

Erfahrenes Mitglied
Hallo zusammen,

ich entwickle gerade ein Script, welches von einem Startordner alle Verzeichnisse durchcrawlen soll. Dabei sollen von mp3 Dateien die Metadaten des ID3 Tags ausgelesen werden. Das Script klappte fehlerfrei als ich nur den Startordner crawlen lies. Jetzt, mit einem Subfolder klappt es nicht - es treten Fehler beim öffnen der Datei innerhalb des Subfolders auf. Allerdings verstehe ich nicht, warum. Ich habe hier mal das ganze Script gepostet, vielleicht sieht ja jemand meinen Fehler...
PHP:
<?php
require_once 'MP3/Id.php';

function check_dir($folder)
{
	$mp3found = false;
	echo '<table border="1" cellspacing="0" cellpadding="2"><tr><td colspan="9"><b>Ordner: '.$folder.'</b></td></tr>';
	echo '<tr><td>Dateiname</td><td>Titel</td><td>Interpret</td><td>Album</td><td>Jahr</td><td>Kommentar</td><td>Genre</td><td>GenreID</td><td>Track</td></tr>';
	$i = 0;
	if ($handle = opendir($folder))
	{
		while (false !== ($file = readdir($handle)))
		{
			if($file != '.' && $file != '..')
			{
				if(is_dir($file))
				{
					$arrfolder[$i] = $folder."/".$file;
					$i++;
				}
				else
				{
					$mp3found = true;
					$pos = strpos($file,".mp3");
					
					if($pos !== false)
						read_tag($file);
					
					$pos = strpos($file,".MP3");
					
					if($pos !== false)
						read_tag($file);
				}
			}
		}
		closedir($handle);
	}
	if(!$mp3found)
		echo '<tr><td colspan="9">Keine mp3-Datei gefunden</td></tr>';
	
	echo '</table><br>';
	
	for($j = 0; $j < $i; $j++)
		check_dir($arrfolder[$j]);
}
?>
PHP:
function read_tag($file)
{
	echo '<tr><td>'.$file.'</td>';
	$id3 = &new MP3_Id();
	$result = $id3->read($file);
	if (PEAR::isError($result))
	{
		echo '<td colspan="8">'.$result->getMessage()."</td></tr>";
	}
	else
	{
		echo '<td>'.$id3->getTag('name').'</td>';
		echo '<td>'.$id3->getTag('artists').'</td>';
		echo '<td>'.$id3->getTag('album').'</td>';
		echo '<td>'.$id3->getTag('year').'</td>';
		echo '<td>'.$id3->getTag('comment').'</td>';
		echo '<td>'.$id3->getTag('genre').'</td>';
		echo '<td>'.$id3->getTag('genreno').'</td>';
		echo '<td>'.$id3->getTag('track').'</td></tr>';
	}
}
?>
PHP:
<?
$dir = 'D:/wwwroot';

check_dir($dir);

?>
 
Vielleicht kann ja jemand das Script mal ausführen, der einen richtigen Debugger hat - wenn man alles untereinander zusammenfügt kann man es gut testen. Warte dringend auf eine lösung des Problems. Ebenso würd ich gern wissen, wie man ein PECL Package bei XAMPP installiert (anderer Thread, keine Antwort bisher).


Gruß Radhad
 
Hallo.
Ich habe gerade dieses Script hier gefunden.
Ich bin gerade dabei eine sehr umfangreiche MP3 Verwaltung zu Programmieren.
Darf ich dein gepostetes Script benutzen?

Habe es bei mir mal ausprobiert. Bei mir kommt folgende Fehlermeldung.
Fatal error: Class 'MP3_id' not found in /opt/lampp/htdocs/mp3/id.php on line 5
Ordner: MP3
Dateiname Titel Interpret Album Jahr Kommentar Genre GenreID Track
Hurricane Tony - Funky Ass Beat.mp3
 
Ich habe bei mir XAMPP installiert. Dort ist das PEAR Package MP3_ID schon vorinstalliert. Leider kann ich dir nicht sagen, wie man es nachträglich installiert. Da müsstest du die PEAR-Website durchforsten.

Das Script kannst du verwenden, wenn ich das fertige Ergebnis erhalte. Ich versuche für mich eine kleine mp3-Verwaltung aufzubauen. Ich kann dir dann ja meine Scripts geben und du mir deine? Bei Interesse -> PN ;)

Eigentlich wollte ich das entsprechende PECL-Package verwenden, aber bisher hat mir keiner erklären können, wie ich es installieren kann :/


Gruß Radhad
 
Zurück