PHP 有关MB模块 Fatal error: Call to undefined function mb_internal_encoding() in /usr/local/apache2/htdocs/include/application.php on line 29 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mbstring查看php.ini里是否加载了php_mbstring.dll dll是win下的库,而楼主是Linux。[mbstring];多字节字符串模块支持mbstring.language = “neutral”; 默认的NLS(本地语言设置),可设置值如下:; 默认值”neutral”表示中立,相当于未知。; “zh-cn”或”Simplified Chinese”表示简体中文; “zh-tw”或”Traditional Chinese”表示繁体中文; “uni”或”universal”表示Unicode; 该指令自动定义了随后的mbstring.internal_encoding指令默认值,; 并且mbstring.internal_encoding指令必须放置在该指令之后。mbstring.internal_encoding =; 本指令必须放置在mbstring.language指令之后。; 默认的内部编码,未设置时取决于mbstring.language指令的值:; “neutral” 对应 “ISO-8859-1″; “zh-cn” 对应 “EUC-CN” (等价于”GB2312″); “zh-tw” 对应 “EUC-TW” (等价于”BIG5″); “uni” 对应 “UTF-8″; 提醒:对于简体中文还可以强制设置为”CP936″ (等价于”GBK”); 注意:可能 SJIS, BIG5, GBK 不适合作为内部编码,不过”GB2312″肯定没问题。; 建议手动强制指定mbstring.encoding_translation = Off; 是否对进入的HTTP请求按照mbstring.internal_encoding指令进行透明的编码转换,; 也就是自动检测输入字符的编码并将其透明的转化为内部编码。; 可移植的库或者程序千万不要依赖于自动编码转换。mbstring.http_input = “pass”; 默认的HTTP输入编码,”pass”表示跳过(不做转换); “aotu”的含义与mbstring.detect_order指令中的解释一样。; 可以设置为一个单独的值,也可以设置为一个逗号分隔的列表。mbstring.http_output = “pass”; 默认的HTTP输出编码,”pass”表示跳过(不做转换); “aotu”的含义与mbstring.detect_order指令中的解释一样。; 可以设置为一个单独的值,也可以设置为一个逗号分隔的列表。; 必须将output_handler指令设置为”mb_output_handler”才可以。mbstring.detect_order =; 默认的编码检测顺序,”pass”表示跳过(不做转换)。; 默认值(”auto”)随mbstring.language指令的不同而变化:; “neutral”和”universal” 对应 “ASCII, UTF-8″; “Simplified Chinese” 对应 “ASCII, UTF-8, EUC-CN, CP936″; “Traditional Chinese” 对应 “ASCII, UTF-8, EUC-TW, BIG-5″; 建议在可控环境下手动强制指定一个单一值mbstring.func_overload = 0;SYS; 自动使用 mb_* 函数重载相应的单字节字符串函数。; 比如:mail(), ereg() 将被自动替换为mb_send_mail(), mb_ereg(); 可用 0,1,2,4 进行位组合。比如7表示替换所有。具体替换说明如下:; 0: 无替换; 1: mail() → mb_send_mail(); 2: strlen() → mb_strlen() ; substr() → mb_substr(); strpos() → mb_strpos() ; strrpos() → mb_strrpos(); strtolower() → mb_strtolower() ; strtoupper() → mb_strtoupper(); substr_count() → mb_substr_count(); 4: ereg() → mb_ereg() ; eregi() → mb_eregi(); ereg_replace() → mb_ereg_replace() ; eregi_replace() → mb_eregi_replace(); split() → mb_split()mbstring.scrīpt_encoding =; 脚本所使用的编码mbstring.strict_detection = Off; 是否使用严谨的编码检测mbstring.substitute_character =; 当某个字符无法解码时,就是用这个字符替代。; 若设为一个整数则表示对应的Unicode值,不设置任何值表示不显示这个错误字符。; 建议设为”□”mbstring.strict_encoding = Off ;默认值未知; enable strict encoding detection.; 对于这个指令尚无说明文档 php.ini中找到;extension=php_mbstring.dll去掉前面分号。重启apache试试。 /usr是linux的哈,如2楼所说。php_mbstring.so另外,不同版本的PHP,安装扩展方式也不同。有的只要做一个link到某个特定文件夹即可。 mbstring php已经自带了,编译php的时候带上 -enable-mbstring 即可.重新编译下php吧或者另外编译 mbstring. 怎么编译PHP 我没有学习过php 只是临时在apache上发布一个php项目 比菜鸟还菜鸟 复制的 自己核对路径 步骤和指令一样1 进入php源代码目录中的mbstring所在目录cd /usr/local/src/php-5.2.4/ext/mbstring/2 执行php安装后目录中的bin/phpize文件/usr/local/php/bin/phpize3 进入php源代码目录cd /usr/local/src/php-5.2.4/4 执行上述目录中的configure文件./configure --prefix=/usr/local/src/php-5.2.4/ext/mbstring --with-php-config=/usr/local/php/bin/php-config5 make; make install将mbstring.so安装到/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/中6 编辑php.ini,加入一行extension=mbstring.so7 重新启动httpdservice httpd restart(如果是php-cgi模式的,请先杀掉所有的php-cgi进程,再重启httpd) 3步:1、./configure --prefix=/usr/nc-home/php5 --with-apxs2=/usr/nc-home/apache/bin/apxs --with-mysql=/usr/nc-home/mysql --with-config-file-path=/etc --disable-debug --with-openssl --with-iconv=/usr/local/lib --enable-mbstring2、make3、make install中间若报错,看错误提示安装或修改所需程序。 不用重新编译php的。我怀疑楼主安装的php是不是用了for windows的版本? 编译php比较蛋痛,你就先别弄了,直接编译个 mbstring 扩展上去好了。 服务器上是找人安装的apache+mysql+php 所以不清楚安装的php是那个版本 Fatal error: Call to undefined function mb_internal_encoding() in /usr/local/apache2/htdocs/include/application.php on line 29 我把这个第29行注释掉就么事了 真郁闷啊 其实这个问题还没有解决 原因可能是 mb_internal_encoding 这个函数扩展不了 1、在php538\ext文件下放php_mbstring.dll文件 2、在php.ini下面添一句extension=php_mbstring.dll 引入的意思 请问得到当前html的地址,实现浏览次数功能,怎么都+1 求救:apache在加载PHP模块后不能启动!!! 浮动框架里怎样处理PHP的问题-- php 做一个网站的客户历史浏览功能 如何做,思路? 有关变量传递的问题 关于分页程序的问题,请各位高手指点迷津! ZIP文件解密,请求帮助,有报酬 学php需要什么基础? PHP提交到自身页面如何方式刷新提交 给phper面试怎样能测出水平和潜力? Fatal error: Out of memory (allocated 262144) (tried to allocate 10267220 bytes) PHP Mysql问题
查看php.ini里是否加载了php_mbstring.dll
;多字节字符串模块支持mbstring.language = “neutral”
; 默认的NLS(本地语言设置),可设置值如下:
; 默认值”neutral”表示中立,相当于未知。
; “zh-cn”或”Simplified Chinese”表示简体中文
; “zh-tw”或”Traditional Chinese”表示繁体中文
; “uni”或”universal”表示Unicode
; 该指令自动定义了随后的mbstring.internal_encoding指令默认值,
; 并且mbstring.internal_encoding指令必须放置在该指令之后。mbstring.internal_encoding =
; 本指令必须放置在mbstring.language指令之后。
; 默认的内部编码,未设置时取决于mbstring.language指令的值:
; “neutral” 对应 “ISO-8859-1″
; “zh-cn” 对应 “EUC-CN” (等价于”GB2312″)
; “zh-tw” 对应 “EUC-TW” (等价于”BIG5″)
; “uni” 对应 “UTF-8″
; 提醒:对于简体中文还可以强制设置为”CP936″ (等价于”GBK”)
; 注意:可能 SJIS, BIG5, GBK 不适合作为内部编码,不过”GB2312″肯定没问题。
; 建议手动强制指定mbstring.encoding_translation = Off
; 是否对进入的HTTP请求按照mbstring.internal_encoding指令进行透明的编码转换,
; 也就是自动检测输入字符的编码并将其透明的转化为内部编码。
; 可移植的库或者程序千万不要依赖于自动编码转换。mbstring.http_input = “pass”
; 默认的HTTP输入编码,”pass”表示跳过(不做转换)
; “aotu”的含义与mbstring.detect_order指令中的解释一样。
; 可以设置为一个单独的值,也可以设置为一个逗号分隔的列表。mbstring.http_output = “pass”
; 默认的HTTP输出编码,”pass”表示跳过(不做转换)
; “aotu”的含义与mbstring.detect_order指令中的解释一样。
; 可以设置为一个单独的值,也可以设置为一个逗号分隔的列表。
; 必须将output_handler指令设置为”mb_output_handler”才可以。mbstring.detect_order =
; 默认的编码检测顺序,”pass”表示跳过(不做转换)。
; 默认值(”auto”)随mbstring.language指令的不同而变化:
; “neutral”和”universal” 对应 “ASCII, UTF-8″
; “Simplified Chinese” 对应 “ASCII, UTF-8, EUC-CN, CP936″
; “Traditional Chinese” 对应 “ASCII, UTF-8, EUC-TW, BIG-5″
; 建议在可控环境下手动强制指定一个单一值mbstring.func_overload = 0
;SYS
; 自动使用 mb_* 函数重载相应的单字节字符串函数。
; 比如:mail(), ereg() 将被自动替换为mb_send_mail(), mb_ereg()
; 可用 0,1,2,4 进行位组合。比如7表示替换所有。具体替换说明如下:
; 0: 无替换
; 1: mail() → mb_send_mail()
; 2: strlen() → mb_strlen() ; substr() → mb_substr()
; strpos() → mb_strpos() ; strrpos() → mb_strrpos()
; strtolower() → mb_strtolower() ; strtoupper() → mb_strtoupper()
; substr_count() → mb_substr_count()
; 4: ereg() → mb_ereg() ; eregi() → mb_eregi()
; ereg_replace() → mb_ereg_replace() ; eregi_replace() → mb_eregi_replace()
; split() → mb_split()mbstring.scrīpt_encoding =
; 脚本所使用的编码mbstring.strict_detection = Off
; 是否使用严谨的编码检测mbstring.substitute_character =
; 当某个字符无法解码时,就是用这个字符替代。
; 若设为一个整数则表示对应的Unicode值,不设置任何值表示不显示这个错误字符。
; 建议设为”□”mbstring.strict_encoding = Off ;默认值未知
; enable strict encoding detection.
; 对于这个指令尚无说明文档
;extension=php_mbstring.dll去掉前面分号。重启apache试试。
php_mbstring.so
另外,不同版本的PHP,安装扩展方式也不同。有的只要做一个link到某个特定文件夹即可。
或者另外编译 mbstring.
cd /usr/local/src/php-5.2.4/ext/mbstring/
2 执行php安装后目录中的bin/phpize文件
/usr/local/php/bin/phpize
3 进入php源代码目录
cd /usr/local/src/php-5.2.4/
4 执行上述目录中的configure文件
./configure --prefix=/usr/local/src/php-5.2.4/ext/mbstring --with-php-config=/usr/local/php/bin/php-config
5 make; make install
将mbstring.so安装到/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/中
6 编辑php.ini,加入一行
extension=mbstring.so
7 重新启动httpd
service httpd restart
(如果是php-cgi模式的,请先杀掉所有的php-cgi进程,再重启httpd)
1、./configure --prefix=/usr/nc-home/php5 --with-apxs2=/usr/nc-home/apache/bin/apxs --with-mysql=/usr/nc-home/mysql --with-config-file-path=/etc --disable-debug --with-openssl --with-iconv=/usr/local/lib --enable-mbstring
2、make
3、make install
中间若报错,看错误提示安装或修改所需程序。
我把这个第29行注释掉就么事了 真郁闷啊
2、在php.ini下面添一句extension=php_mbstring.dll 引入的意思