Ankündigung

Einklappen
Keine Ankündigung bisher.

Call to undefined function finfo_open()

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

  • Call to undefined function finfo_open()

    Moin, ich hab ein Ordner mit vielen Endungslosen Dateitypen und würde von diesen gerne den MIME Typ rausfinden.

    PHP-Code:
    if(empty($dateiendung) OR !isset($dateiendung)) {
        
    $finfo finfo_open(FILEINFO_MIME_TYPE);
        
    $mime finfo_file($finfo$download);
        
    finfo_close($finfo);
    echo 
    $mime;

    Code:
    Fatal error: Call to undefined function finfo_open() in /index.php on line 75
    Was mache ich falsch?
    Kann jemand helfen?
    "Echte Intellektuelle wie wir sollten ihre Lippen nicht mit Flüchen beschmutzen."
    - Patrick Star


  • #2
    Hier geschaut?

    PHP: finfo_open - Manual

    bei finfo_open scheint der 2. Parameter zu fehlen!

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Hm, hab diese Beispiel hier verwendet: PHP: finfo_file - Manual
      Aber das andere muss ich mir nochmal anschauen

      edit: Habs so abgeändert:
      PHP-Code:
      if(empty($dateiendung) OR !isset($dateiendung)) {
          
      $finfo finfo_open(FILEINFO_MIME"/usr/share/misc/magic");
          
      $mime finfo_file($finfo$download);
          
      finfo_close($finfo);
      echo 
      $mime;

      Aber immernoch derselbe Fehler, selben Zeile. Und ja, /usr/share/misc/magic existiert
      "Echte Intellektuelle wie wir sollten ihre Lippen nicht mit Flüchen beschmutzen."
      - Patrick Star

      Kommentar


      • #4
        Beide Parameter sind optional (sieht man an den eckigen Klammern in denen die Parameter stehen). Daran liegts also nicht, es würde auch eine andere Fehlermeldung kommen.

        undefined function bedeutet das die Funktion nicht bekannt ist, also nicht existiert. Es ist also wahrscheinlich das die fileinfo Extension bei deiner PHP Installation im Webserver nicht installiert ist!

        Kommentar


        • #5
          @Flor1an: du hast recht. Hab's mir auch gerade nochmal durchgelesen -> ist optional!

          Wolf29
          while (!asleep()) sheep++;

          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

          Kommentar


          • #6
            Zitat von Flor1an Beitrag anzeigen
            [...] fileinfo Extension [...] im Webserver nicht installiert [...]
            Kannst du mir sagen, wo ich das "herbekomme"?
            mime_content_type() geht ja, aber das sollte man nicht nehmen (klappt aber bei mir ganz gut)
            "Echte Intellektuelle wie wir sollten ihre Lippen nicht mit Flüchen beschmutzen."
            - Patrick Star

            Kommentar


            • #7
              PHP: Fileinfo - Manual

              Am einfachsten wahrscheinlich in der php.ini die Extensions "php_fileinfo.dll" laden. Wenn du nicht auf die php.ini zugreifen kannst hast du wahrscheinlich keine Chance diese Extension zu nutzen.

              Kommentar


              • #8
                Da steht zwar etwas über Installation, aber schlau werde ich daraus nicht.

                Anforderungen:
                Before PHP 5.3.0, the magic_open library is needed to build this extension.
                Installation:
                This extension is enabled by default as of PHP 5.3.0. Before this time, fileinfo was a PECL extension but is no longer maintained there.
                ...Sorry, aber ich weiß wirklich nicht, woher ich das bekomme und wie ich das installieren soll.
                "Echte Intellektuelle wie wir sollten ihre Lippen nicht mit Flüchen beschmutzen."
                - Patrick Star

                Kommentar


                • #9
                  Zitat von Flor1an Beitrag anzeigen
                  Am einfachsten wahrscheinlich in der php.ini die Extensions "php_fileinfo.dll" laden. Wenn du nicht auf die php.ini zugreifen kannst hast du wahrscheinlich keine Chance diese Extension zu nutzen.

                  Kommentar


                  • #10
                    Ouh, das habe ich grafisch deiner Signatur zugeordnet.
                    Werds mal ausprobieren

                    edit: die dll ist aber nur für Windowsuser, oder?
                    "Echte Intellektuelle wie wir sollten ihre Lippen nicht mit Flüchen beschmutzen."
                    - Patrick Star

                    Kommentar


                    • #11
                      Ach so ja klar, ansonsten musst du bei Unix entsprechend die .so Datei laden.

                      Kommentar


                      • #12
                        die dll kann ich finden, aber eine .so ist nicht auffindbar!
                        "Echte Intellektuelle wie wir sollten ihre Lippen nicht mit Flüchen beschmutzen."
                        - Patrick Star

                        Kommentar


                        • #13
                          Welches OS nutzt du denn?

                          Kommentar


                          • #14
                            Debian, die genaue Version allerdings nicht.
                            Für Linuxsysteme bzw Debian heißt die Datei meines Wissens nach nur fileinfo.so, aknns aber trotzdem nicht finden...

                            Ah, hab jetzt offenbar den C Source der Datei (?)
                            Muss ich php jetzt neu kompilieren, oder wie? Oo
                            "Echte Intellektuelle wie wir sollten ihre Lippen nicht mit Flüchen beschmutzen."
                            - Patrick Star

                            Kommentar

                            Lädt...
                            X