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

۱ سال پیش(به روز شده در ۱ سال پیش) پی اچ پی(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 تابع

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

تابع تبدیل تاریخ میلادی به شمسی...

تابع تبدیل تاریخ میلادی به شمسی. دو تابع اولیه مربوط مشخص کردن کبیسه بودن سالهای شمسی و میلادی است......

تابع حذف فایل در صورت وجود...

تابع زیر فرآیند ساده‌ای دارد. ابتدا بررسی می کند که آیا فایل وجود دارد یا خیر. در صورت وجود آنرا حذف می‌کند. function delFile( $file_name ) { if ( file_exists( $file_name ) ) // Does '$fi...

گرفتن جملات یک رشته...

این تابع جملات رشته ورودی را بر می گرداند. آرگومان str$ رشته ورودی و char$ مربوط به جدا کننده کلمات در رشته می باشد که به طور پیش فرض تهی است. function parser($str, $char = ' ') { $str = trim($str...

برگرداندن کلیدهای آرایه به حالت uppercase یا lowercase...

تابع زیر , کلیدهای آرایه ورودی را به حروف کوچک یا حروف یزرگ تبدیل و سپس آرایه را بر می گرداند. این تابع می تواند استفاده خاص خود را داشته باشد مثلا وقتی بخواهیم ورودی ها را به آرایه ای تبدیل و سپس با ...

نظر

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