Schubi: pls-Scanner

Hallo Forum.

Ich habe bei mir sehr viele pls-Dateien auf dem PC, das sind Playlisten, die ich mit xmms abspiele. In den pls-Dateien sind ausschließlich lokal bei mir liegende Musikdateien.

Meine Musiksammlung ändert sich ständig. Ich bekomme immer wieder Lieder, deren Dateiname nicht meinem (für mich persönlich angelegten) Standard "interpret - songtitel.endung" (alles klein geschriebe) gleichen, sondern oft mit der Titelnummer davor o.ä.

Ich komme (zeitlich bedingt) nicht hinterher, die alle umzubenennen, und so kann es sein (das kommt sehr oft vor) dass ich eine Playliste angelegt habe mit einer noch nicht umbenannten Datei darin.

Dann ändere ich nach 1-2 Wochen den Dateinamen - und xmms findet den Song verständlicherweise nicht mehr, weil noch der alte Pfad in der pls-Datei verzeichnet ist.

Die Ideallösung wäre ein Programm, das überprüft, ob die Dateien einer Playliste noch existieren. Leider habe ich bisher ein solches nicht gefunden.

Deshalb würde ich es gerne selbst erstellen. C (das lerne ich gerade), sh (was ich mal konnte, es mir aber gleich wieder beibringen kann) und PHP kann ich schon. Zuerst versuche ich mich an PHP, nur wenn es damit nicht klappt versuche ich die anderen.

Meine bisherigen Ansätze in PHP waren folgende:

  1. Einlesen der Playliste per file_get_contents => Permission denied
  2. Einlesen der Playliste per fopen => Permission denied
  3. Abfragen ob einzelne Datei existiert => existiert nicht (obwohl in Dateibrowsern vorhanden und ausführbar)

Gibt es denn in PHP keine Möglichkeit, eine Datei außerhalb des DocumentRoots einzulesen, oder auch nur abfragen zu können, ob sie existiert?
Letzteres wäre nämlich dann ein Ansatz, der für den Vorgang, nicht die Playliste selber einzulesen, sondern deren Inhalt aus einem input-Textfeld (manuell aus der Playliste rauskopiert) zu erhalten, allein gebraucht werden würde.

Kann ich mit PHP überhaupt so eine Anwendung verwirklichen? Ich würde C und sh gerne möglichst vermeiden (andere, nicht-webbasierte Sprachen spreche ich noch nicht).

Danke
Schubi

  1. Hey,
    das Programm sollte/braucht nicht webbasiert zu sein. Setze PHP in gewöhnlicher Manier ein. http://de.php.net/features.commandline

    Die Ideallösung wäre ein Programm, das überprüft, ob die Dateien einer Playliste noch existieren. Leider habe ich bisher ein solches nicht gefunden.

    Einzeiler gefällig? (Ungetestet, da ich keine XMMS-Beispielplaylist habe.)
    perl -ne's/^File\d+=//;warn $_ unless -e' < foo.pls

    --
    水-金-地-火-木-土-天-海-冥