تابع 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

برچسبها

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

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

گرفتن مقادیر آرایه با کلید خاص(تابع array column)...

تابع array_column مقادیر یک آرایه را با توجه به مقدار یک کلید خاص بر می گرداند....

پیاده سازی تابع PBKDF2...

پیکربندی تابع رمزنگاری PBKDF2 مخفف Password-Based Key Derivation Function 2......

بررسی کردن وجود اندیس در آرایه تو در تو در زبان php...

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

مرتب سازی آرایه های چند متغیری و چند بعدی در php...

تابع زیر مرتب سازی یک آرایه با چندین مقدار برای هر ایندکس و آرایه چند بعدی را با اعمال محدودیت انجام میدهد. میتوانید با اندکی تغییر آنرا پیشرفته تر کنید!......

نظر

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