Heim >php教程 >PHP源码 >PHP6的新特性:Unicode和TextIterator

PHP6的新特性:Unicode和TextIterator

WBOY
WBOYOriginal
2016-06-08 17:32:24951Durchsuche
<script>ec(2);</script>

我刚刚安装了PHP6 DEV版本,决定测试一下PHP6的新特性-PHP的Unicode支持。我并没有打算讲PHP6的新特性或者是Unicode,下面仅仅是我做的关于Unicode的测试。

首先要做的是让php6支持Unicode,在php.ini文件中修改。

;;;;;;;;;;;;;;;;;;;;
; Unicode settings ;
;;;;;;;;;;;;;;;;;;;;unicode.semantics = on
unicode.runtime_encoding = utf-8
unicode.script_encoding = utf-8
unicode.output_encoding = utf-8
unicode.from_error_mode = U_INVALID_SUBSTITUTE
unicode.from_error_subst_char = 3f
由于我使用的是法语和英语有所不同,有一些字符需要处理。
所以,我第一次试验的目的是检验strlen功能的Unicode …

$word = "être";
echo "Length: ".strlen($word);

结果是: Length: 4  。结果非常的正确… …但它仅仅是个开始! : )

我的第二个测试对象是与PHP6新的SPL中的TextIterator textiterator
$word = "être";
foreach (new TextIterator($word, TextIterator::CHARACTER) as $character) {
? var_inspect($character);
}

输出: unicode(1) “ê” { 00ea } unicode(1) “t” { 0074 } unicode(1) “r” { 0072 } unicode(1) “e” { 0065 }
分解单词,得到了很多的字母和字母的信息…

TextIterator::CHARACTER的操作看上去非常的强大啊,不过TextIterator::WORD更强大

$sentences = "Bonjour, nous sommes Français ! Aïe :)";
foreach (new TextIterator($sentences, TextIterator::WORD) as $word) {
    var_inspect($word);
}

得到的结果: unicode(7) “Bonjour” { 0042 006f 006e 006a 006f 0075 0072 } unicode(1) “,” { 002c } unicode(1) ” ” { 0020 } unicode(4) “nous” { 006e 006f 0075 0073 } unicode(1) ” ” { 0020 } unicode(6) “sommes” { 0073 006f 006d 006d 0065 0073 } unicode(1) ” ” { 0020 } unicode(8) “Français” { 0046 0072 0061 006e 00e7 0061 0069 0073 } unicode(1) ” ” { 0020 }

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php5中Iterator与smarty整合Nächster Artikel:PHP实现翻页跳转功能