PDA

View Full Version : سوال: گرفتن فقط اعداد در php



payam-nice
چهارشنبه 22 مرداد 1393, 11:32 صبح
از عنوان تاپیک مشخص هست که سوالم چی هست؟! تو انجمن و گوگل هم جستجو کردم ولی برای خود php کدی رو پیدا نکردم. من میخوام از یک فرم فقط اعداد گرفته بشه یعنی اگر کاربر در کنار عدد حروف هم وارد کرد فقط اعداد ازش گرفته بشه و حروف به نوعی حذف شه.

Mohammadsgh
چهارشنبه 22 مرداد 1393, 12:09 عصر
شما میتونید با تابع preg_match یک چار چوبی رو تعریف کنید که فقط با اون چیزی که شما دوست دارید فرستاده بشه:لبخندساده:

mojtaba.7230
چهارشنبه 22 مرداد 1393, 13:08 عصر
موقع ورود اطلاعات سمت کار باید از جاوااسکرپیت استفاده کنید ، سمت سرور باید کاراکترهای متغییر تک تک گرفته بشه اگر عدد بود دخیره ش کنید... این روشیه که فعلا به فکر من میرسه..


$text = '4dg5hj8frr884dfhgh147';
$len_text = strlen( $text );
for( $i= 1 ; $i <= $len_text ; $i++ ){
$namuber = substr( $text , $i , 1 );
if( is_numeric( $namuber ) ){
@ $result_text .= $namuber;
}
}
echo $text.'<br>'.$result_text;

Mohammadsgh
چهارشنبه 22 مرداد 1393, 14:16 عصر
دوست گرامی چه کاریه؟:متفکر:زمانیکه میشه با یه تابع معمولی چک کرد نیازی به این همه کد نیست:لبخندساده:

hamedarian2009
چهارشنبه 22 مرداد 1393, 19:24 عصر
میتونید از تابع preg_replace استفاده کنید

$s = '1akj5689#. () l 265 k';
echo preg_replace('/[^0-9]/','',$s);

تو مثال بالا با استفاده از تابع preg_replace تمامی کاراکترها به جز اعداد رو به اسپیس تبدیل میکنه

persiansh
چهارشنبه 22 مرداد 1393, 19:40 عصر
برای عدد وارد کردن میتونی از html5 استفاده کنی یا جاوااسکریپت مثلا html :
<input type="number"/>
دیگه توو این روش نمی تونه حرف وارد کنه.
اما اگه سمت سرور بخوای باید اول تست کن عدد هست با تابع is_numeric() و اگه عدد نبود از تابع preg_match() استفده کن.
;)