PHP7 Fatal Error: utf8_encode nicht vorhanden?

php7

Neulich habe ich mir über ein PPA (ppa.launchpad.net/ondrej) PHP7 auf mein Ubuntu 14.04 LTS installiert und die standardmäßig darin nicht vorhandenen Module php7.0_mbstring und php7.0_mysql über Synaptic nachgerüstet.

Heute stellte ich beim Weitertüfteln an einer bestehenden großen Anwendung fest, dass die Funktionen utf8_encode() und utf8_decode() fehlen. Beide Aufrufe erzeugen Fehler: „PHP Warning: Uncaught Error: Call to undefined function utf8_decode() in php shell code:1“ beim interaktiven Aufruf in der Shell bzw. „Fatal error: Uncaught Error: Call to undefined function utf8_encode()“ im Browser. Was ist da los???

Da weiß man erstmal nicht so recht, wonach man suchen soll. Die komplette Fehlermeldung gab keinen Treffer. Aber dann fand ich mit „undefined function utf8_encode“ in einer beliebten Suchmaschine den unten verlinkten Beitrag.

Die Lösung ist für mich nicht naheliegend, aber sie funktioniert. Die beiden Funktionen sind entgegen der üblichen Behauptungen nicht zwingend im Kern von PHP enthalten (wenn sie nicht hineinkompiliert wurden wie in dieser PPA-Quelle), sondern stecken im Modul php7.0_xml. Darauf würe ich nie gekommen! Also auch per Synaptic nachinstallieren und fertig.

Quelle: PHP Fatal Error: Call to undefined function utf8_encode() error message

 

Ein Gedanke zu „PHP7 Fatal Error: utf8_encode nicht vorhanden?

  1. Im Modul php7.0_mysql des oben genannten PPA sind die Module mysqli und mysqlnd enthalten. Das frühere Modul mysql ist schon lange deprecated und seit PHP 5.6 nicht mehr verfügbar! Das ist wichtig für alte Installationen auf Webservern, die auf PHP >= 5.6 umgestellt werden sollen – da lÃäuft dann plötzlich keine Datenbank mehr, sofern man sein Projekt nicht sowieso mit mysqli oder PDO entwickelt oder rechtzeitig darauf umgestellt hat.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Copy This Password *

* Type Or Paste Password Here *