Undefinierte Funktion: mb_detect_encoding()

Hallo,

wenn ich ein php-Skript über einen Browser aufrufe, kann ich mb_detect_encoding() problemlos verwenden.

Definiere ich das ganze jetzt mittels „#!/usr/…/php“ als Shell-Skript und führe das Skript in der Shell aus bekomme ich die Fehlermeldung
Fatal error: Call to undefined function mb_detect_encoding()

„–enable-mbstring“ ist in php mit eincompiliert, nicht als dynamic extension definiert

Ergebnis von phpinfo():

Configure Command:
‚./configure‘ ‚–prefix=/usr‘ ‚–datadir=/usr/share/php‘ ‚–mandir=/usr/share/man‘ ‚–bindir=/usr/bin‘ ‚–libdir=/usr/share‘ ‚–includedir=/usr/include‘ ‚–sysconfdir=/etc‘ ‚–with-_lib=lib‘ ‚–with-config-file-path=/etc‘ ‚–with-exec-dir=/usr/lib/php/bin‘ ‚–disable-debug‘ ‚–enable-bcmath‘ ‚–enable-calendar‘ ‚–enable-ctype‘ ‚–enable-dbase‘ ‚–enable-discard-path‘ ‚–enable-exif‘ ‚–enable-filepro‘ ‚–enable-force-cgi-redirect‘ ‚–enable-ftp‘ ‚–enable-gd-imgstrttf‘ ‚–enable-gd-native-ttf‘ ‚–enable-inline-optimization‘ ‚–enable-magic-quotes‘ ‚–enable-mbstr-enc-trans‘ ‚–enable-mbstring‘’–enable-memory-limit’ ‚–enable-safe-mode‘ ‚–enable-shmop‘ ‚–enable-sigchild‘ ‚–enable-sysvsem‘ ‚–enable-sysvshm‘ ‚–enable-track-vars‘ ‚–enable-trans-sid‘ ‚–enable-versioning‘ ‚–enable-wddx‘ ‚–with-bz2‘ ‚–with-dom=/usr/lib‘ ‚–with-ftp‘ ‚–with-gdbm‘ ‚–with-gettext‘ ‚–with-gmp‘ ‚–with-imap=yes‘ ‚–with-jpeg-dir‘ ‚–with-ldap=yes‘ ‚–with-mcal=/usr‘ ‚–with-mcrypt‘ ‚–with-mysql=/usr‘ ‚–with-ndbm‘ ‚–with-pgsql=/usr‘ ‚–with-png-dir‘ ‚–with-t2lib‘ ‚–with-tiff-dir‘ ‚–with-ttf‘ ‚–with-freetype-dir=/usr/lib‘ ‚–with-xml‘ ‚–with-zlib=yes‘ ‚–with-gd‘ ‚–with-openssl‘ ‚–with-curl‘ ‚–with-imap-ssl‘ ‚–with-mm‘ ‚–with-apxs2=/usr/sbin/apxs2-prefork‘

Muss ich eventuell bei der Shell-Ausführung die Extension mbstring trotzdem extra dazulinken? Worin besteht der Unterschied bei den Arten der Ausführung des Skriptes?

Hab leider dazu nichts weiter im Netz finden können.

Danke und Grüße

Hallo,

wenn ich ein php-Skript über einen Browser aufrufe, kann ich
mb_detect_encoding() problemlos verwenden.

Definiere ich das ganze jetzt mittels „#!/usr/…/php“ als
Shell-Skript und führe das Skript in der Shell aus bekomme ich
die Fehlermeldung
Fatal error: Call to undefined function mb_detect_encoding()

„–enable-mbstring“ ist in php mit eincompiliert, nicht als
dynamic extension definiert

Ergebnis von phpinfo():

kommt denn bei phpinfo im shellscript das selbe heraus wie im browser?

Hallo,

wenn ich ein php-Skript über einen Browser aufrufe, kann ich
mb_detect_encoding() problemlos verwenden.

Definiere ich das ganze jetzt mittels „#!/usr/…/php“ als
Shell-Skript und führe das Skript in der Shell aus bekomme ich
die Fehlermeldung
Fatal error: Call to undefined function mb_detect_encoding()

„–enable-mbstring“ ist in php mit eincompiliert, nicht als
dynamic extension definiert

Ergebnis von phpinfo():

kommt denn bei phpinfo im shellscript das selbe heraus wie im
browser?

Danke, das war der entscheidende Hinweis. Da hab ich wohl wieder nicht gut genug nachgedacht … :smile:

Also in der CLI-Version scheint php tatsächlich anders konfiguriert zu sein. Die mbstring-extension fehlte tatsächlich in der Ausgabe von „php -i“. Ich hab mir nun von „http://rpmfind.net/linux/rpm2html/search.php?query=m…“ die passende Version gezogen, mit „rpm -i ***.rpm“ installiert.

Und voila, das Skript rennt in der Shell. :smiley:

Vielen Dank und Beste Grüße