phi*_*reo 5 php encoding ascii utf-8 character-encoding
在PHP中,确定某些给定的UTF-8文本是否纯粹是ASCII的最快方法是什么?
irc*_*ell 12
一个可能更快的功能是使用负字符类(因为正则表达式可以在它击中第一个字符时停止,并且不需要内部捕获任何东西):
function isAscii($str) {
return 0 == preg_match('/[^\x00-\x7F]/', $str);
}
Run Code Online (Sandbox Code Playgroud)
没有正则表达式(基于我的评论){
function isAscii($str) {
$len = strlen($str) {
for ($i = 0; $i < $len; $i++) {
if (ord($str[$i]) > 127) return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
但我不得不问,你为什么这么关心更快?使用更易阅读且更易于理解的版本,只有在您知道问题时才会担心优化它...
编辑:
然后最快的可能是mb_check_encoding:
function isAscii($str) {
return mb_check_encoding($str, 'ASCII');
}
Run Code Online (Sandbox Code Playgroud)