تابع utf8SubString , گرفتن بخشی از رشته با یونیکد UTF8

۵ سال پیش(به روز شده در ۴ سال پیش) پی اچ پی(PHP)(توابع) ۰

تابع معمولی substr در php برای رشته های یونیکدی جواب نمی دهد. در واقع در رشته های یونیکد دار هر حرف از ترکیب سه یا چهار حرف اسکی که کد اسکی آنها بیشتر از 127 است تشکیل شده است. لذا نیاز است تا برای اینکار راه دیگری را برگزید. بهترین راه و ساده ترین راه استفاده از تابع mb_substr است که مزیت آن نسبت به دیگر توابع امکان مشخص کردن نوع چارست یا یونیکد است. بعنوان مثال:

echo substr('وی2', 0, 1); //out = �
echo mb_substr('وی2', 0, 1, 'utf8'); //out = و

اما تابع ما مختص رشته های با یونیکد utf8 می باشد که به این صورت است:

function utf8SubString($str, $from, $len)
{
    return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,' . $from . '}' .
        '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,' . $len . '}).*#s', '$1', $str);
}

echo utf8SubString('وی2', 0, 1); //out = و

منبع: php.net

برچسبها

هیچ برچسبی موجود نیست.

صفحات پیشنهادی

تابع محاسبه طول رشته با یونیکد utf-8...

دو تابع جهت بررسی طول یک رشته utf8. function strlen_utf8( $str ) { return mb_strlen( $str, 'UTF-8' ); }   //or... function strlen_utf8( $str ) { $c = 0; $len = strlen( $str ); ...

مرتب سازی آرایه های چند بعدی با استفاده از اندیس خاص (sort array)...

تابع زیر آرایه مورد نظر را با توجه به اندیس ورودی مرتب سازی می کند. ورودی اول مربوط به آرایه , ورودی دوم مربوط به اندیس ای است که باید بر اساس آن مرتب سازی صورت گیرد و بخش سوم صعودی یا نزولی بودن ترتی...

تابع تشخیص پسوند از نام فایل...

تابع زیر پسوند فایل را بر می گرداند. function ext($file_name) { return substr($file_name, strrpos($file_name, '.') + 1); }...

نسخه بهتر شده تابع parse_str در php...

در تابع ()parse_str تبدیل آرایه ها بدرستی انجام نمیشود به همین خاطر نیاز هست تا تابع قدرتمندتری استفاده نمود. تابع معرفی شده بصورت کامل یک رشته کوئری ورودی را به متغیرها و آرایه ها تبدیل میکند و به نو...

نظر

نظری ثبت نشده است.
captcha image reload