tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
269
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    stetabar stetabar ist offline Mitglied Bronze
    Registriert seit
    May 2008
    Beiträge
    27
    Hallo zusammen,

    ich bin auf der Suche nach einer Lösung aus einer .mp3-Datei per PHP die Dateiinformationen auszulesen.
    Also wenn in der Datei zB ein Album und einen Interpreten hinterlegt ist, dass ich diesen mittels PHP ermittle.
    Mit
    PHP-Code:
    lstat 
    konnte ich zB allgemeine Dateiinfos erhalten, aber wie komme ich an die oben genannten Infos?

    Wäre schön, wenn mir da jemand einen Tipp geben könnte.

    Besten Dank im Voraus!
     

  2. #2
    Avatar von Klein0r
    Klein0r Klein0r ist offline Mitglied Platin
    Registriert seit
    Sep 2007
    Ort
    Paderborn
    Beiträge
    718
    das ganze nennt sich ID3-Tag.

    Habe das hier gefunden (nicht getestet): http://getid3.sourceforge.net/

    lg
     

  3. #3
    stetabar stetabar ist offline Mitglied Bronze
    Registriert seit
    May 2008
    Beiträge
    27
    Erstmal Danke, Klein0r!

    Wie muss ich denn mein PHP anpassen, damit mein PHP die id3-Tags verarbeiten kann?

    Wenn ich das so ausführe, passiert nichts.

    Ich nehme an, dass ich das id3-Modul in meiner php.ini aktivieren muss, oder so...

    Ich habe die PHP Version 5.2.3 auf meinem Server, aber die scheint das nicht zu wollen...
    Geändert von stetabar (17.07.08 um 13:21 Uhr) Grund: In all der Aufregung vergessen mich zu bedanken... *schäm*
     

  4. #4
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    id3_get_tag() sollte eigendlich genau das sein was du suchst.

    Wichtig hierbei:
    Installation

    Die id3 Extension ist Teil des PECL Archivs und kann mit Hilfe des PEAR Installationstools installiert werden. Wenn Sie PHP selbst mit id3 Unterstützung kompilieren wollen laden Sie den Quellcode herunter, entpacken ihn in php-src/ext/id3 und kompilieren dann PHP mit --enable-id3.
     
    mfg
    --------------------------------------------------------------------------------
    Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!

    Besucht den tutorials.de-Chat | Anleitung
    RTFM - PHP-Handbuch - MySql Handbuch
    --------------------------------------------------------------------------------
    Surftipp...Der Postillon
    --------------------------------------------------------------------------------
    Signatur v2.2

  5. #5
    Avatar von Klein0r
    Klein0r Klein0r ist offline Mitglied Platin
    Registriert seit
    Sep 2007
    Ort
    Paderborn
    Beiträge
    718
    Okay also musste ich das Paket doch mal laden - aber habs nicht getestet.
    Um das anzuwenden sollte man einigermaßen Ahnung von OOP haben - wenn du das ganze nur includest ist klar das nichts passiert weil er dann nur die klassen deklariert.

    Schau dir doch einfach mal unter demos die demo.browse.php an.
    Da schlägste dich dann durch und am Ende weißt du hoffentlich wie du das ganze anwenden musst

    EDIT:
    Oder du machst es wie Loomes sagt - allerdings kann das Paket was ich dir gegeben habe sicher noch Ecke mehr - die Frage ist was genau du willst
    Für dich könnte es fast so reichen... Allerdings muss dafür wohl dein Provider diese Option eingeschaltet haben - sonst wird das nichts
     

  6. #6
    stetabar stetabar ist offline Mitglied Bronze
    Registriert seit
    May 2008
    Beiträge
    27
    Habe es nun endlich hinbekommen.
    Also lag an den Einstellungen in meiner php.ini.

    Nachdem ich die dll dann richtig geladen hatte, hat er mir die Info zurückgegeben!

    Besten Dank nochmal!
     

  7. #7
    Avatar von Klein0r
    Klein0r Klein0r ist offline Mitglied Platin
    Registriert seit
    Sep 2007
    Ort
    Paderborn
    Beiträge
    718
    Vllt könntest du ein Stück Quelltext für dein Nachkommen opfern wie du es gelöst hast
     

  8. #8
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Ich habe mir mal selber Funktionen geschrieben um ID3v1.x Tags auszulesen. Hierbei muss man nur die letzten 128 Byte der Datei auswerten. Allerdings ist das Script nicht gerade gut geschrieben und müsste etwas angepasst werden.
    PHP-Code:
    function id3($filename)
    {
        global 
    $genres;
        
        
    $arr = array();
        if (!
    is_file($filename) or filesize($filename) < 128)
        {
            return 
    false;
            break;
        }
        
        
    $fp fopen($filename"r");
        
    fseek($fpfilesize($filename) - 128);
        
    $id3 fread($fp128);

        if (
    strtoupper(substr($id303)) == "TAG")
        {
            
    $arr["title"] = trim(substr($id3330));
            
    $arr["artist"] = trim(substr($id33330));
            
    $arr["album"] = trim(substr($id36330));
            
    $arr["year"] = trim(substr($id3934));
            
            if (
    substr($id31251) == "\0" && substr($id31261) != "\0")
            { 
    // we got a ID3v1.1 here
                
    $arr["comment"] = trim(substr($id39729));
                
    $arr["track"] = ord(substr($id31261));
                
    $arr["version"] = "ID3v1.1";
            }
            else
            { 
    // old ID3v1
                
    $arr["comment"] = trim(substr($id39730));
                
    $arr["version"] = "ID3v1";
            }
            
            
    $arr["genre"] = $genres[ord($id3[127])];
            
            
    clearstatcache();
            
            return 
    $arr;
        }
        
        return 
    false;
    }

    $genres = array(
        
    0   => 'Blues',
        
    1   => 'Classic Rock',
        
    2   => 'Country',
        
    3   => 'Dance',
        
    4   => 'Disco',
        
    5   => 'Funk',
        
    6   => 'Grunge',
        
    7   => 'Hip-Hop',
        
    8   => 'Jazz',
        
    9   => 'Metal',
        
    10  => 'New Age',
        
    11  => 'Oldies',
        
    12  => 'Other',
        
    13  => 'Pop',
        
    14  => 'R&B',
        
    15  => 'Rap',
        
    16  => 'Reggae',
        
    17  => 'Rock',
        
    18  => 'Techno',
        
    19  => 'Industrial',
        
    20  => 'Alternative',
        
    21  => 'Ska',
        
    22  => 'Death Metal',
        
    23  => 'Pranks',
        
    24  => 'Soundtrack',
        
    25  => 'Euro-Techno',
        
    26  => 'Ambient',
        
    27  => 'Trip-Hop',
        
    28  => 'Vocal',
        
    29  => 'Jazz+Funk',
        
    30  => 'Fusion',
        
    31  => 'Trance',
        
    32  => 'Classical',
        
    33  => 'Instrumental',
        
    34  => 'Acid',
        
    35  => 'House',
        
    36  => 'Game',
        
    37  => 'Sound Clip',
        
    38  => 'Gospel',
        
    39  => 'Noise',
        
    40  => 'Alternative Rock',
        
    41  => 'Bass',
        
    42  => 'Soul',
        
    43  => 'Punk',
        
    44  => 'Space',
        
    45  => 'Meditative',
        
    46  => 'Instrumental Pop',
        
    47  => 'Instrumental Rock',
        
    48  => 'Ethnic',
        
    49  => 'Gothic',
        
    50  => 'Darkwave',
        
    51  => 'Techno-Industrial',
        
    52  => 'Electronic',
        
    53  => 'Pop-Folk',
        
    54  => 'Eurodance',
        
    55  => 'Dream',
        
    56  => 'Southern Rock',
        
    57  => 'Comedy',
        
    58  => 'Cult',
        
    59  => 'Gangsta',
        
    60  => 'Top 40',
        
    61  => 'Christian Rap',
        
    62  => 'Pop/Funk',
        
    63  => 'Jungle',
        
    64  => 'Native US',
        
    65  => 'Cabaret',
        
    66  => 'New Wave',
        
    67  => 'Psychadelic',
        
    68  => 'Rave',
        
    69  => 'Showtunes',
        
    70  => 'Trailer',
        
    71  => 'Lo-Fi',
        
    72  => 'Tribal',
        
    73  => 'Acid Punk',
        
    74  => 'Acid Jazz',
        
    75  => 'Polka',
        
    76  => 'Retro',
        
    77  => 'Musical',
        
    78  => 'Rock & Roll',
        
    79  => 'Hard Rock',
        
    80  => 'Folk',
        
    81  => 'Folk-Rock',
        
    82  => 'National Folk',
        
    83  => 'Swing',
        
    84  => 'Fast Fusion',
        
    85  => 'Bebob',
        
    86  => 'Latin',
        
    87  => 'Revival',
        
    88  => 'Celtic',
        
    89  => 'Bluegrass',
        
    90  => 'Avantgarde',
        
    91  => 'Gothic Rock',
        
    92  => 'Progressive Rock',
        
    93  => 'Psychedelic Rock',
        
    94  => 'Symphonic Rock',
        
    95  => 'Slow Rock',
        
    96  => 'Big Band',
        
    97  => 'Chorus',
        
    98  => 'Easy Listening',
        
    99  => 'Acoustic',
        
    100 => 'Humour',
        
    101 => 'Speech',
        
    102 => 'Chanson',
        
    103 => 'Opera',
        
    104 => 'Chamber Music',
        
    105 => 'Sonata',
        
    106 => 'Symphony',
        
    107 => 'Booty Bass',
        
    108 => 'Primus',
        
    109 => 'Porn Groove',
        
    110 => 'Satire',
        
    111 => 'Slow Jam',
        
    112 => 'Club',
        
    113 => 'Tango',
        
    114 => 'Samba',
        
    115 => 'Folklore',
        
    116 => 'Ballad',
        
    117 => 'Power Ballad',
        
    118 => 'Rhytmic Soul',
        
    119 => 'Freestyle',
        
    120 => 'Duet',
        
    121 => 'Punk Rock',
        
    122 => 'Drum Solo',
        
    123 => 'Acapella',
        
    124 => 'Euro-House',
        
    125 => 'Dance Hall',
        
    126 => 'Goa',
        
    127 => 'Drum & Bass',
        
    128 => 'Club-House',
        
    129 => 'Hardcore',
        
    130 => 'Terror',
        
    131 => 'Indie',
        
    132 => 'BritPop',
        
    133 => 'Negerpunk',
        
    134 => 'Polsk Punk',
        
    135 => 'Beat',
        
    136 => 'Christian Gangsta Rap',
        
    137 => 'Heavy Metal',
        
    138 => 'Black Metal',
        
    139 => 'Crossover',
        
    140 => 'Contemporary Christian',
        
    141 => 'Christian Rock',
        
    142 => 'Merengue',
        
    143 => 'Salsa',
        
    144 => 'Trash Metal',
        
    145 => 'Anime',
        
    146 => 'Jpop',
        
    147 => 'Synthpop'
    );

    $file ="C:/my.mp3";
    $ID3tag $data id3($file);

    if(
    true === is_array($ID3tag))
    {
        
    $ID3tag['filesize'] = round(filesize($file) / 1024 1024,2)." MB";
    }

    echo 
    '<pre>';
    var_dump($ID3tag);
    echo 
    '</pre>'
    Damit kannst du es ja mal probieren Ist halt noch aus meinen anfänglichen PHP4 Zeiten ...
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

  9. #9
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Ein Response vom Ersteller wäre nicht schlecht, damit andere auch wissen, was denn nun die Lösung ist
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

Ähnliche Themen

  1. [Frage] WMI VGA Informationen auslesen
    Von ironmonkey2 im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 17.12.07, 13:26
  2. Antworten: 1
    Letzter Beitrag: 11.07.07, 21:39
  3. Informationen zum Java .class File Format
    Von Thomas Darimont im Forum Java Technology News
    Antworten: 0
    Letzter Beitrag: 28.08.06, 23:31
  4. jpeg informationen auslesen
    Von metty im Forum PHP
    Antworten: 3
    Letzter Beitrag: 21.07.04, 14:59
  5. Header Informationen aus der TIFF auslesen
    Von daywalkertp im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 27.11.03, 11:41