Мои тестове :
$mystr = "асд";
$time_start = microtime();
$ascii = ord($mystr[0]);
for ($i=0; $i<1000000; $i++){
$cyr = ($ascii> 191 && $ascii< 256 ) ? true : false;
}
$elapsed = microtime_diff($time_start,microtime());
echo "Strings : .$elapsed
";
$time_start = microtime();
$let = $mystr[0];
for ($i=0; $i<1000000; $i++){
$cyr = preg_match("/^[А-Яа-я]/", $let);
}
$elapsed = microtime_diff($time_start,microtime());
echo "RegEx : .$elapsed
";
function microtime_diff($a, $b) {
list($a_dec, $a_sec) = explode(" ", $a);
list($b_dec, $b_sec) = explode(" ", $b);
return $b_sec - $a_sec + $b_dec - $a_dec;
}
РЕЗУЛТАТ :
Strings : .1.687768
RegEx : .2.99677
Резултат при 10000000 итерации:
Strings : .16.952791
RegEx : .29.664071
РАЗЛИКАТА Е ПОЧТИ ДВОЙНА !!!!!!!!!!!!!!!!!!!!
root@localhost#cd /pub
root@localhost#more beerРедактирано от ro6avia на 22.03.04 16:42.