如何处理PHP中的Unicode无意识<;6.
我正在做一个需要了解Unicode的项目。PHP提供了一系列有用的函数,如str_count_words(),用于计算某些输入中的字数,但它们无法处理PHP<6中的UTF-8数据,这是一个遗憾。这同样适用于strlen()、strrev()等 我该怎么办?PHP6还没有发布,所以我不能要求人们使用我的软件如何处理PHP中的Unicode无意识<;6.,php,unicode,function,Php,Unicode,Function,我正在做一个需要了解Unicode的项目。PHP提供了一系列有用的函数,如str_count_words(),用于计算某些输入中的字数,但它们无法处理PHP
我是否应该为字符串函数编写一个包装器库,如果版本低于6,它将使用PHP6的函数或我自己的函数?正如您所建议的,您可以创建一个包装器库,直到PHP6成为标准安装。(考虑到PHP 5的ISP接入速度,这是几年之后的事了
同时,这种方法也被证明是足够的。正如您所建议的,您可以创建一个包装器库,直到PHP6成为标准安装。(考虑到PHP5的ISP使用速度,这是几年之后的事了。)
同时,这种方法也被证明是足够的。对于多字节字符串函数,您应该检查 例如,有一个函数——相当于strlen,但可以与UTF-8一起使用
不幸的是,这些函数只有少数几个,而且所有的
str*
都不一定有一个mb_str*
等价物……但是,对于多字节字符串函数,在PHP5.x中创建一个100%UTF-8的WebList是完全可能的,您应该检查一下
例如,有一个函数——相当于strlen,但可以与UTF-8一起使用
不幸的是,这些函数只有少数几个,而且所有的str*
都不一定有一个mb_str*
等价物……但是,在PHP5.x中创建一个100%UTF-8的WebListe是完全可能的,您可以使用这些函数
另一个好主意可能是看看其他人是如何做到这一点的,特别是像Wordpress和Drupal这样的成熟系统。据我所知,它们都有自己的多字节函数包装器
其他可能感兴趣的资源:
function iki_String_str_word_count($string, $format = 0, $search = null)
{
$result = iki()->Regex->Match_All($string, '[\p{L}\p{Mn}\p{Pd}\'\x{2019}' . iki()->Regex->Quote($search) . ']+', 0, 'u');
if ($format == 0)
{
return count($result);
}
return $result;
}
function iki_String_strlen($string)
{
return strlen(utf8_decode($string));
}
还有一个实现了很多函数族的包装类。它还声称是100%UTF-8兼容的。我已经在PHP5中为此创建了一个包装类(我认为这是唯一可靠的方法),下面是我对您提到的函数的一些实现:
function iki_String_str_word_count($string, $format = 0, $search = null)
{
$result = iki()->Regex->Match_All($string, '[\p{L}\p{Mn}\p{Pd}\'\x{2019}' . iki()->Regex->Quote($search) . ']+', 0, 'u');
if ($format == 0)
{
return count($result);
}
return $result;
}
function iki_String_strlen($string)
{
return strlen(utf8_decode($string));
}
还有一个实现了许多函数系列的应用程序。它还声称是100%UTF-8兼容的。它必须是PHP吗?如果Unicode支持是一个核心问题,PHP5可能不是平台的最佳选择。它是一个web应用程序,必须在尽可能多的平台和服务器上工作。它必须支持rt Postgres、MySQL、SQL Server和Oracle RDBMS。它必须有XML解析支持,而且还有大量其他要求,坦率地说,PHP似乎最有意义。其他现代脚本语言当然可以很好地处理XML和数据库,同时本机也支持Unicode字符串。例如Python、ASP.NET、各种可能的Java。虽然PHP支持在cheapo共享主机上最为广泛,但PHP5在相当长的一段时间内仍将是PHP5,PHP5中的Unicode支持是非常不达标的。它必须是PHP吗?如果Unicode支持是一个核心问题,PHP5可能不是平台的最佳选择。它是一个web应用程序,必须在尽可能多的平台上工作尽可能多的服务器。它必须支持Postgres、MySQL、SQL Server和Oracle RDBMS。它必须支持XML解析,还有大量其他要求,坦率地说,PHP似乎是最有意义的。其他现代脚本语言当然可以很好地处理XML和数据库,同时本机也支持Unicode字符串。例如Python、ASP.NET和Java脚本编写的各种可能性。虽然PHP支持在cheapo共享主机上最为广泛,但PHP5在相当长一段时间内仍将是PHP5,PHP5中的Unicode支持非常不达标。PS:请原谅我的具体方法,但我现在很忙,无法翻译代码。希望它刚好能够通过m请原谅我的具体方法,但我现在很忙,无法翻译代码。希望它能传递消息。