Rolandi: mb_internal_encoding() nicht definiert?

Moin,

seit Monaten beginnen meine PHP-Programme mit

header('Content-Type: text/html; charset=UTF-8');
mb_internal_encoding("UTF-8");  

Jetzt plötzlich kommt der Fehler

Call to undefined function mb_internal_encoding() in D:\homepages....\index.php:41 Stack trace: #0 {main} thrown in D:\homepages....\index.php on line 41

Woran kann dies liegen? Ich kann mich an keine markannte Änderung in der Umgebung erinnern.

  1. Tach!

    Jetzt plötzlich kommt der Fehler

    Call to undefined function mb_internal_encoding() in D:\homepages....\index.php:41 Stack trace: #0 {main} thrown in D:\homepages....\index.php on line 41

    Woran kann dies liegen? Ich kann mich an keine markannte Änderung in der Umgebung erinnern.

    Das heißt nicht, dass sie nicht stattgefunden hat. Wenn die Funktion nicht definiert ist, ist sie auch nicht da. Irgendeine Ursache muss es haben, dass die Funktion, und möglicherweise die gesamte Extension für Multibyte_Strings nicht mehr da ist. Erste Maßnahme ist, mit phpinfo() nachzuschauen, ob die Extension geladen ist. Dann muss der Systemadministrator nach der Ursache forschen.

    dedlfix.

  2. mbstring ist eine Erweiterung, die erst eingeschaltet werden muss. Prüfe in deiner php.ini, ob dort

    extension_dir = "c:\bla\fasel\ext"
    extension=php_mbstring.dll

    angegeben ist.

  3. Hallo

    seit Monaten beginnen meine PHP-Programme mit

    header('Content-Type: text/html; charset=UTF-8');
    mb_internal_encoding("UTF-8");  
    
    

    Jetzt plötzlich kommt der Fehler

    Call to undefined function mb_internal_encoding() in D:\homepages....\index.php:41 Stack trace: #0 {main} thrown in D:\homepages....\index.php on line 41

    Woran kann dies liegen? Ich kann mich an keine markannte Änderung in der Umgebung erinnern.

    Bist du dir sicher, dass es keine Änderungen gab? Die PHP-Doku sagt zur Multibyte-Erweiterung, zu der die nämliche Funktion gehört, dass sie nicht standardmäßig installiert wird. Es könnte ja durchaus sein, dass dein Hoster eine neue PHP-Version installiert und die Multibyte-Erweiterung dabei vergessen hat.

    Tschö, Auge

    --
    Eine Kerze stand [auf dem Abort] bereit, und der Almanach des vergangenen Jahres hing an einer Schnur. Die Herausgeber kannten ihre Leser und druckten den Almanach auf weiches, dünnes Papier.
    Kleine freie Männer von Terry Pratchett
  4. Vermutlich hast du PHP aktualisiert und bei der neuen Version ist die mbstring-Erweiterung standardmäßig nicht aktiviert?

    Kontrolliere, dass du extension=php_mbstring.dll in deiner php.ini stehen hast.

    1. Die php.ini ist vom März 2017. Habe jetzt die Original-Datei von 2016 verwendet und es läuft! Danke an Euch alle.

      1. Die php.ini ist vom März 2017. Habe jetzt die Original-Datei von 2016 verwendet und es läuft!

        Das ist aber nur ein Zufall. Ein andermal können da Erweiterungen aufgeführt sein, die es nicht mehr oder nicht mehr an diesem Ort gibt oder die nicht installiert wurden.

        Und dann kracht es ganz gewaltig: PHP will nicht mehr starten.