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

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

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

توابع رمزگذاری و رمزگشایی یک رشته با خروجی‌های متفاوت...

دو تابع encrypt و decrypt به ترتیب مربوط به رمزگذاری و رمزگشایی می باشند. اما تفاوتی که با حالت معمول دارند این است که خروجی تابع encrypt برای یک مقدار با هر بار فراخوانی متفاوت است. این ویژگی قطعا در...

فراخوانی فایلهای پیکربندی ini با تابع ()parse_ini_file...

تابع ()parse_ini_file جهت پردازش و فراخوانی متغیرهای درونی فایلهای پیکربندی ini بکار می رود. در وب سایتهای تخصصی همواره قرار دادن متغیرهای سراسری در فایلهای php جالب نیست و معقول خواهد بود تا متغیرهای...

نمایش نام با فرمت مناسب(گسترش تابع ucwords)...

تابع ucwords برای بزرگ کردن حروف ابتدای کلمات یک رشته بکار می رود. البته زمانی این تابع کاربرد دارد که فاصله بین کلمات فضای خالی باشد(مثلا خط تیره را نیز جز کلمه بحساب می آورد). حال زمانیکه فاصله بین ...

تغییر ابعاد تصویر با رعایت نسبت طول به عرض...

این تابع تصاویر با فرمت یا پسوند jpg یا jpeg را به ابعاد دلخواه تغییر می دهد. یعنی با min یا max مشخص می کنید که رو به افزایش باشد یا خیر. هر گاه max انتخاب شود به این معنی خواهد بود که طول تصویر شما ...

نظر

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