PHP函数库的使用mb_string处理Windows相关的汉字和PHPmb_string方法赢得环境下
昨天,我想处理一堆以前下载过的文件,文件中的关键内容是定期和集中地匹配的。在Windows操作系统中,文件操作中遇到的一个问题是编码问题。
我们都知道,Windows当然是中文版的。文件名和文件内容的编码是GBK。在发展的过程中,井手是UTF-8编码。
只考虑如何将代码分成的方式相同,所以中国规律的字符串,我写在UTF-8不能正确匹配中文GBK编码的文件。
在开始的时候,我并没有以任何方式改变PHP脚本文件的编码为GBK,或使用它,但是我认为这种方法是太低,所以发现无论在PHP有功能可以满足我的需要。
在这一点上,我认为iconv()函数用于处理Windows中的文件的名称,其函数原型如下:
字符串(字符串的字符串in_charset iconv,out_charset美元,字符串str)
执行字符集转换从in_charset字符串str
我们经常使用:
out_charset美元= 'utf-8;
美元($文件名,文件名= iconv out_charset美元,'gbk);
进程文件名,文件名由GBK改为UTF-8和内容是不变的。
添加手册翻译:
如果你添加 / /直译或out_charset美元= 'utf-8 / / translit'to输出字符串out_charset美元,当你遇到字符无法转换为UTF-8编码,程序会自动替换一个相似字符的UTF-8字符。
如果你添加 / /忽略或out_charset美元= 'utf-8 / / ignore'after输出字符串的out_charset,程序会自动跳过这个字当你遇到字符无法转换为UTF-8。
如果你不添加任何东西,更换将被中断,当你遇到性格不能被替换为UTF-8。
但是当我使用这个函数时,结果是:
这意味着,iconv的最大字符数()函数可以处理仅为64,一般的文件名,大小,和我的文件内容明显多于64个字符。
没办法,我只好翻找通过各种其他功能。
直到我发现mb_string函数库,这是一般集成在PHP环境中,我们可以发现在phpinfo()。
在mb_string功能,有mb_convert_encoding()函数来改变一个字符串和函数原型编码如下:
mb_convert_encoding(String str字符串,字符串的to_encoding {,}混合from_encoding美元)
转换编码的字符串str为to_encoding随意from_encoding字符。
基础原型类似iconv()函数,但它不修改输出功能的后缀,它没有字符串的长度有一定的限制。
我们看到,from_encoding美元是可选的,它可以自动识别源代码。
因为没有确切的性格不能被转换,我不知道如何处理,不能被转换的字符。
通过mb_convert_encoding()函数,整个文件进行处理,使问题顺利解决。
最后介绍了mb_string函数库,它的全名是多字节字符串,它的许多方法都是从PHP的字符串函数库的扩展,与mb_ 在原函数的函数名前面的
这个strpos()函数,例如,发现在其他字符串的位置。
Strpos(欢迎光临
在mb_strpos()函数,mb_strpos(欢迎访问
和mb_strpos(欢迎访问
当然,它有更多的功能。
下面是PHP mb_string方法在Windows环境概述
前几天运行一个PHP程序,需要把字符编码,而是一个探针服务器,竟然说不支持mb_string延伸。我与php_mbstring.dll文件检查PHP扩展库。
下面的方法将打开告诉你
1。确保您的Windows / system32有php_mbstring.dll文件,你不要把它从你的PHP安装目录扩展到Windows System32 /。
2。在Windows目录,找到php.ini打开编辑,搜索mbstring.dll,找到
php_mbstring.dll延伸=
然后取前面,报数,打开组件的支持。
三.重新启动PHP服务(如果不能重启计算机)
4。完成