Ankündigung

Einklappen
Keine Ankündigung bisher.

exif... in php.ini "einschalten"?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • exif... in php.ini "einschalten"?

    Hi auch,
    jetzt bin ich wiedermal auf ein Problem mit den exif-Metadaten in Bildern gestoßen und habe nicht so wirklich Lust, schonwieder das Internet nach einer erklärenden Lösung umzuwühlen usw.
    Deshalb hoffe ich hier auf eine (schnelle) Erklärung wimperklimper

    Das "Problem" (eigentlich ist es ja kein Problem, ich verstehe nur nicht, wieso das so und nicht andersrum funktioniert):
    Ich will die Exif-daten mit
    Code:
    exif_read_data
    auslesen; das funktioniert auch: gibt einen mehrdimensionalen array zurück, den ich mit
    Code:
    foreach
    etc. auslesen kann.
    Verstehen tue ich jetzt folgendes nicht: lt. php-manual kann man als zweiten Parameter eine (Liste) bestimmte section angeben, und wenn diese NICHT gefunden wird soll die Funktion false zurückgeben, richtig?
    Tut sie aber nicht! Ich habe folgendes gecodet bzw. sogar aus dem Manual per copy&paste übernommen:
    PHP-Code:
    $exif exif_read_data(ImgPath'IFD0');
    echo 
    $exif===false "No header data found.<br />\n" "Image contains headers<br />\n"
    Eigentlich müsste jetzt doch entweder das Eine oder das Andere auf dem Bildschirm ausgegeben werden? Wird aber nicht, und zwar weder noch!!

    Ist das etwa ein bug oder muss ich doch nochwas in der php.ini einkommentieren?


  • #2
    Error-Reporting mal einschalten. Wo kommt ImgPath her? Wenn die Funktion tut was sie soll (und keinen Programmabbruch bewirkt) ist irgendwas am Ternären buggy.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Sorry, hätte ich gleich dazuschreiben sollen:
      $ImgPath ist die von mir vergebene Variable, die den absoluten Dateipfad enthält.
      In der Codezeile vorher steht also:
      Code:
      $ImgPath = $this->sImgPath_org.$this->sImgName_org;
      wobei $this->sImgPath_org und $this->sImgName_org wiederum members sind, die mit Werten aus einer DB belegt werden ($this->sImgPath_org schließt mit einem "/" ab, deswegen die einfache string-verkettung).
      Ich wollte jetzt nurnicht meine ganze Klasse hier ausbreiten, weil die ja einwandfrei funktioniert -hab ich vorwärts und rückwärts getestet.

      Kommentar


      • #4
        Gut "$ImgPath" gibt es also, "ImgPath" aber immernoch nicht. Was ist mit dem Error-Reporting?
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          sorry, dass ich mich jetzt erst wieder melde; ich hab mit ner Depression zu kämpfen.

          Also, erstmal Hintergrundinfos: Ich habe im Foren-raum 'Einsteiger' geschrieben, weil ich seit 8 Jahren arbeitslos bin und nicht, weil ich blutiger Anfänger in der php-Programmierung bin; Ich sehe mich also nur nicht als fortggeschrittenen Programmierer, weil es mir an (praktischer/täglicher) Programmier-erfahrung fehlt.
          So syntaktische Vergesserlis wie z.B. eine Variable nicht zu belegen oder das $ zu vergessen passieren mir nichtmehr bzw. finde ich selbst; wie oben z.B.


          Um jetzt jeglichen Fehler von außen auszuschließen habe ich nur folgendes gecodet:
          Code:
          <?php
          error_reporting(E_ALL);
           $exif = exif_read_data('figura-articulada-minnie-mouse.jpg', 'X');
           if($exif === FALSE) {
            die("Image contains no headers<br />\n");
           }
           else {
            print_r($exif);
           }
          ?>
          Das 'figura-articulada-minnie-mouse.jpg' habe ich aus dem Internet runtergeladen und liegt im gleichen Verzeichnis.
          Das php-Skript habe ich exif_read_data.php genannt und unter Windows + XAMPP eine vhost test eingerichtet -natürlich rufe ich nicht einfach das Skript direkt auf.

          Wenn ich jetzt an diesem vhost dieses Skript exif_read_data.php aufrufe sollte doch eigentlich Image contains no headers im Browser stehen, denn eine Section X gibt es ja nicht, richtig? Im Browser wird aber immer der mehrdimensionale exif-array ausgegeben!
          Nur, wenn ich den Namen des jpgs ändere -z.B nur einen Buchstaben aus dem Namen lösche- gibts ne Fehlermeldung, weil ja diese Datei nicht gefunden wird.



          Versteh ich da jetzt was falsch?

          Kommentar

          Lädt...
          X