PDA

View Full Version : به جای mb_strlen



NSNhaCkEr
دوشنبه 18 مهر 1390, 17:47 عصر
سلام
یک برنامه نوشتم که توش خیلی از تابع mb_strlen استفاده شده
ولی خوب این تابع نیاز به یک اسکتنشن داره که به صورت دیفالت روی سرور های ویندوز هست ولی روی سرور های لینوکس نه
برای همین برنامه من روی سرور های لینوکس مشکل داره

لطفا پیشنهاد بدید برای حل این مشکل

Freedom777
دوشنبه 18 مهر 1390, 20:33 عصر
بنده این تابع رو خیلی وقت پیش برای پروژهء خودم نوشتم:

function utf8_strlen($string) {

$utf8_char_pattern='/[\x09\x0A\x0D\x20-\x7E]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2}/';

$results_arr=array();

preg_match_all($utf8_char_pattern, $string, $results_arr);

return count($results_arr[0]);
}

دقیقا همون کار رو انجام میده. کافیه اسمش رو عوض کنی و در فایلهای خودت اینکلود کنی.