由于php默认不是unicode(5.3以及以下),所以对多字节文字的处理不够好。
对中文字符串的处理,可以根据编码的特性进行处理;
也可以使用Multi-Byte String函数,启用该模块后可以使用相应的可以处理非ascii编码的文字了。处理string的函数均有对应的Multi-Byte String函数,前面加上mb_即可。
例如:
<?php
echo "<h2>中文字符串的处理</h2>";
$str="hello,博客";
echo "字符串:{$str}<br />";
echo "字符串长度:".strlen($str)."<br />";
echo mb_strlen($str);
echo mb_substr($str,6,2);
?>
输出结果为:
字符串:hello,博客
字符串长度:12
8博客
?
如何使php支持mbstring库
确认你所改的php.ini是当前的配置。可以用phpinfo()函数查出来。从phpinfo()的输出信息中可以找到模块存放目录
在linux下进入extension_dir所指的目录,看看有没有mbstring.so文件。
在windows下看有没有php_mbstring.dll。若有即可在php.ini中激活:
extension=mbstring.so
或者
extension=php_mbstring.dll
?
Linux下为PHP添加mbstring扩展库
一、Linux主机安装mbstring扩展库指南(源码安装)
以下命令在命令行下输入:
1、用cd命令进入php的源代码目录下的etc/mbstring目录下,如“/src/php5.2.5”,即“cd /src/php5.2.5”;
2、执行
#/usr/local/php/bin/phpize (假设php安装在/usr/local/php目录下)
3、执行
#./configure --with-php-config=/usr/local/php/bin/php-config
4、执行make && make install
5、之后系统会提示你mbstring.so文件所在的目录。根据php.ini中指示的extension_dir指向的目录中,将其复制过去.或将mbstring.so复制到/usr/local/php/ext目录下,在手配置参extension_dir="/usr/local/php/ext"指向mbstring.so所在目录.
6、修改php.ini,添加一句extension=mbstring.so
然后重启apache:运行 /service httpd restart即可完成安装。
二、Linux主机安装mbstring扩展库指南(rpm安装)
如果你用的是linux自带的apache+php+mysql
命令:
#rpm -q php (得到php的版本号)
然后下载php-mbstring:
注意php-mbstring-4.3.9-3.15.i386.rpm这里的版本号是可以更改的,只需要更改为你的php版本号就可以
安装:
#rpm -ivh php-mbstring-4.x.x-x.xx.i386.rpm
然后重启apache就可以了
?
三、设置
PHP的设置文件为/etc/php.ini。在这个例子中,以UTF-8编码为例进行设定。
#vi php.ini
把输出处理程序设为mbstring对应。
;output_handler =
--> output_handler = "mb_output_handler"
设定文字集为UTF-8。
;default_charset = "iso-8859-1"
--> default_charset = "UTF-8"
设置mbstring的语言为Chinese
;mbstring.language = Japanese
--> mbstring.language = Chinese
设置mbstring的内部编码为UTF-8。
;mbstring.internal_encoding = EUC-JP
--> mbstring.internal_encoding = UTF-8
设置mbstring的输入文字编码为自动判别方式。
;mbstring.http_input = auto
--> mbstring.http_input = auto
把mbstring输出文字编码设为UTF-8。
;mbstring.http_output = SJIS
--> mbstring.http_output = UTF-8
激活mbstring的文字编码自动变换方式。
;mbstring.encoding_translation = Off
mbstring.encoding_translation = On
?
########
整理,非原创。