شناسایی اعداد از متن یونیکد

۲ سال پیش(به روز شده در ۶ ماه پیش) پی اچ پی(PHP)(توابع) ۰

روشهای رایج همگی جهت شناسایی اعداد یک رشته روش زیر را پیشنهاد میکنند:

preg_match_all('!\d+!', $str, $matches);

اما روش فوق برای رشته های یونیکد مثلا UTF-8 جواب نمیدهد و نتیجه درستی ندارد و کافیست امتحان کنید. اما تابع زیر برای هر نوع رشته ای، اعداد را پیدا کرده و بصورت آرایه بر میگرداند.

function unicodeStrDigits($str) {
    $arr = array();
    $sub = '';
    for ($i = 0; $i < strlen($str); $i++) { 
        if (is_numeric($str[$i])) {
            $sub .= $str[$i];
            continue;
        } else {
            if ($sub) {
                array_push($arr, $sub);
                $sub = '';
            }
        }
    }
 
    if ($sub) {
        array_push($arr, $sub); 
    }
 
    return $arr;
}

روش دیگر:

$res = array();
$str = 'test 1234 555 2.7 string ..... 2.2 3.3';
$str = preg_replace("/[^0-9\.]/", " ", $str);
$str = trim(preg_replace('/\s+/u', ' ', $str));
$arr = explode(' ', $str);
for ($i = 0; $i < count($arr); $i++) {
    if (is_numeric($arr[$i])) {
        $res[] = $arr[$i];
    }
}
print_r($res); //Array ( [0] => 1234 [1] => 555 [2] => 2.7 [3] => 2.2 [4] => 3.3 )

اطلاعات بیشتر

برچسبها

digits php تابع

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

تابع subwords - نمایش بخشی از کلمه های یک رشته...

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

تابع ایجاد پسورد یا رمز عبور خودکار(password generator)...

این تابع رمز عبور تصادفی ایجاد می کند. رمز عبورهای تصادفی مصارفی بسیاری مخصوصا در سیستمهای مدیریت کاربر دارند......

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

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

محاسبه مقدار حافظه مصرف شده در RAM سیستم(سرور)...

با استفاده از تابع ()memory_usage براحتی میتوانید به مقدار حافظه مصرفی از RAM آگاهی یابید. این تابع از تابع اصلی()memory_get_usage استفاده می کند. function memory_usage() { return (int)(m...

نظر

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