Contao-Camp 2024
Ergebnis 1 bis 8 von 8

Thema: Downloadarchiv - Auslesen Dateien in Ordner- Auslesen MP3 Tags PHP_ID3

  1. #1
    Contao-Nutzer
    Registriert seit
    27.02.2014.
    Beiträge
    6

    Frage Downloadarchiv - Auslesen Dateien in Ordner- Auslesen MP3 Tags PHP_ID3

    Aufgabenstellung:

    - Die Dateien für den Download sollen automatisch aus einem Verzeichnis ausgelesen werden (ohne diese jeweils manuell hinzufügen zu müssen)
    - Der angezeigte Link-Name soll sich aus den MP3-ID3 Tags zusammensetzen
    - Upload Dateien via FTP soll direkt zu aktualisiertem Download-Archiv führen
    - getID3-1.9.16 wurde in Verzeichnis \contao44\assets\ entpackt

    Problem:
    - Nach Umstellung von Contao 3.5.x auf Contao 4.4 funktioniert das PHP Skript nicht mehr.
    - PhP Kenntnisse tendieren gegen "0"
    - Ggf. ist das Paket getID3 nicht korrekt initialisiert.

    Seite zum Test:

    http://dev.fegbadrappenau.de/predigt...lternativ.html

    PHP-Skript
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

    <title>PHP - Ordner auslesen und anzeigen</title>
    </head>

    <body>
    <ul>
    <?php
    //errorcodes
    ini_set('display_errors',1);
    error_reporting(E_ALL);
    // Ordnername

    $ordner = "files/Predigtarchiv2019"; //auch komplette Pfade möglich ($ordner = "download/files"

    // Ordner auslesen und Array in Variable speichern
    $alledateien = scandir($ordner,1); // Sortierung A-Z
    // Sortierung Z-A mit scandir($ordner, 1)

    // Schleife um Array "$alledateien" aus scandir Funktion auszugeben
    // Einzeldateien werden dabei in der Variabel $datei abgelegt
    foreach ($alledateien as $datei) {

    // Zusammentragen der Dateiinfo
    $tag =array id3_get_tag($ordner."/".$datei);
    $dateiinfo = pathinfo($ordner."/".$datei);
    $size = ceil(filesize($ordner."/".$datei)/1048576);
    if ($datei != "." && $datei != ".." && $datei != "_notes") {

    ?><li> <?php echo "<img src='http://www.fegbadrappenau.de/contao/assets/contao/images/iconAUDIO.gif'>";
    ?> <a href="<?php echo $dateiinfo['dirname']."/".$dateiinfo['basename'];?>"><?php echo $dateiinfo['filename']; ?></a> (<?php echo $dateiinfo['extension']; ?> | <?php echo $size ; ?> MB)</li>;
    <?php print_r($tag) ; ?>
    <?php
    };
    };
    ?>
    </ul>
    </body>
    </html>



    Fehlermeldung:
    [2019-01-23 17:33:10] request.INFO: Matched route "contao_frontend". {"route":"contao_frontend","route_parameters":{"_t oken_check":true,"_controller":"Contao\\CoreBundle \\Controller\\FrontendController::indexAction","_s cope":"frontend","alias":"predigtarchiv-alternativ","_route":"contao_frontend"},"request_u ri":"http://dev.fegbadrappenau.de/predigtarchiv-alternativ.html","method":"HEAD"} []
    [2019-01-23 17:33:10] security.INFO: Attempting SimplePreAuthentication. {"key":"frontend","authenticator":"Contao\\CoreBun dle\\Security\\ContaoAuthenticator"} []
    [2019-01-23 17:33:10] request.INFO: Matched route "contao_frontend". {"route":"contao_frontend","route_parameters":{"_t oken_check":true,"_controller":"Contao\\CoreBundle \\Controller\\FrontendController::indexAction","_s cope":"frontend","alias":"predigtarchiv-alternativ","_route":"contao_frontend"},"request_u ri":"http://dev.fegbadrappenau.de/predigtarchiv-alternativ.html","method":"GET"} []
    [2019-01-23 17:33:10] security.INFO: Attempting SimplePreAuthentication. {"key":"frontend","authenticator":"Contao\\CoreBun dle\\Security\\ContaoAuthenticator"} []
    [2019-01-23 17:33:11] app.CRITICAL: An exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowa bleError(code: 0): Parse error: syntax error, unexpected 'id3_get_tag' (T_STRING), expecting '(' at /home/fegbadra/dev.fegbadrappenau.de/contao44/templates/files.php:30)"} []


    Kann hier jemand helfen oder gibt es alternative Erweiterungen?

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.507
    User beschenken
    Wunschliste

    Standard

    Das ist das wichtige in der Meldung:
    Code:
    Parse error: syntax error, unexpected 'id3_get_tag' (T_STRING), expecting '(' at /home/fegbadra/dev.fegbadrappenau.de/contao44/templates/files.php:30)"
    Wenn das diese Zeile hier sein soll:
    PHP-Code:
    $tag =array id3_get_tag($ordner."/".$datei); 
    dann ist die wirklich falsch.
    Was soll das array dort? Falls dort ein Array erzwungen werden soll, dann so:
    PHP-Code:
    $tag =(array) id3_get_tag($ordner."/".$datei); 
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.507
    User beschenken
    Wunschliste

    Standard

    getID3-1.9.16 wurde in Verzeichnis \contao44\assets\ entpackt
    Warum da?
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  4. #4
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.507
    User beschenken
    Wunschliste

    Standard

    Und vor allem, die Funktion "id3_get_tag" ist von PHP selbst, nicht von getID3.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  5. #5
    Contao-Nutzer
    Registriert seit
    27.02.2014.
    Beiträge
    6

    Standard

    ad 1) code ist irgendwo geklaut - dachte ich brauche das array, um durch „n“-Dateien zu gehen.
    ad 2) warum da? Dachte es ist dort gut aufgehoben und wusste nicht wohin sonst (noob)
    ad 3) "id3_get_tag" von PHP – heisst das ich brauche für meinen Zweck keine Erweiterung?

    Habe Deinen Vorschlag umgesetzt. Jetzt kommt andere Fehlermeldung ????

    [2019-01-24 09:34:23] app.CRITICAL: An exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\UndefinedFu nctionException(code: 0): Attempted to call function "id3_get_tag" from the global namespace. at /home/fegbadra/dev.fegbadrappenau.de/contao44/templates/files.php:30)"} []
    [2019-01-24 09:34:23] request.INFO: Matched route "contao_catch_all". {"route":"contao_catch_all","route_parameters":{"_ scope":"frontend","_token_check":true,"_controller ":"Contao\\CoreBundle\\Controller\\FrontendControl ler::indexAction","_url_fragment":"favicon.ico","_ route":"contao_catch_all"},"request_uri":"http://dev.fegbadrappenau.de/favicon.ico","method":"HEAD"} []
    [2019-01-24 09:34:23] security.INFO: Attempting SimplePreAuthentication. {"key":"frontend","authenticator":"Contao\\CoreBun dle\\Security\\ContaoAuthenticator"} []
    [2019-01-24 09:34:23] request.INFO: Matched route "contao_catch_all". {"route":"contao_catch_all","route_parameters":{"_ scope":"frontend","_token_check":true,"_controller ":"Contao\\CoreBundle\\Controller\\FrontendControl ler::indexAction","_url_fragment":"favicon.ico","_ route":"contao_catch_all"},"request_uri":"http://dev.fegbadrappenau.de/favicon.ico","method":"GET"} []
    [2019-01-24 09:34:23] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHtt pException: "Page not found: http://dev.fegbadrappenau.de/favicon.ico" at /home/fegbadra/dev.fegbadrappenau.de/contao44/vendor/contao/core-bundle/src/EventListener/ExceptionConverterListener.php line 112 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFou ndHttpException(code: 0): Page not found: http://dev.fegbadrappenau.de/favicon.ico at /home/fegbadra/dev.fegbadrappenau.de/contao44/vendor/contao/core-bundle/src/EventListener/ExceptionConverterListener.php:112, Contao\\CoreBundle\\Exception\\PageNotFoundExcepti on(code: 0): Page not found: http://dev.fegbadrappenau.de/favicon.ico at /home/fegbadra/dev.fegbadrappenau.de/contao44/vendor/contao/core-bundle/src/Resources/contao/controllers/FrontendIndex.php:64)"} []

  6. #6
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Du bekommst eine "UndefinedFunctionException". Möglicherweise ist auf dem Server die ID3 Extension nicht aktiviert. Dazu wendest du dich besser an den Support deines Hosters. Nachprüfen kannst du die installierten Module per
    PHP-Code:
    phpinfo(); 
    Ansonsten:
    code ist irgendwo geklaut
    ist immer gefährlich! Du solltest zumindest verstehen, was da passiert - schon um dir keine Sicherheitslücken einzubauen!

  7. #7
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Zitat Zitat von BugBuster Beitrag anzeigen
    Und vor allem, die Funktion "id3_get_tag" ist von PHP selbst, nicht von getID3.
    Das hab ich dir einfach mal geglaubt . Aber...

    id3_get_tag stammt wohl aus einem separat zu installierenden Paket (PECL id3 >= 0.1), das nicht unbedingt vorhanden ist.

    @sschuerg: dann musst du dich wohl wirklich an deinen Provider wenden und ihn bitten, das zusätzlich für dich zu installieren.
    Oder du nutzt doch wieder getID3. Dann musst du allerdings auch die Funktionen daraus verwenden. Beispiele gibt es hier: https://github.com/JamesHeinrich/getID3
    Und beachte ggf. die Lizenz für kommerzielle User...

  8. #8
    Contao-Nutzer
    Registriert seit
    27.02.2014.
    Beiträge
    6

    Standard Zusatzpakete installiert

    Vielen Dank schonmal für die Tipps.

    Habe jetzt über mein cPanel mal ein paar Zusatzpakete installiert

    - MP3_IDv2 (Pear)
    - ID3v1Tag (Perl)
    - MP3::Tag (Perl)

    Bzgl. Erweiterungen sollte ich jetzt alles haben, was ich brauche. Jetzt werde ich versuchen, den Code irgendwie lauffähig zu bekommen.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •