PDA

View Full Version : آیا با استفاده از پی اچ پی می توان نوع شماره تلفن همراه را به دست آورد ایرانسل یا همراه اول بودن ...



parandweb
چهارشنبه 05 تیر 1392, 11:12 صبح
با سلام من در سایت خودم شماره تلفن همراه کاربران را دریافت و در بانک اطلاعاتی ذخیره می کنم

حال می خوام در صورتی که شماره تلفن همراه کاربر ایرانسل می باشد یک پیام مثلا شما از اپراطور ایرانسل استفاده می نمایید و اگر همراه اول بود یک پیام دیگر مثلا شما از اپراتور تلفن همراه اول استفاده می نمایید و اگر مشخص نشد پیام " متاسفانه اپراطور تلفن همراه شما توسط ما پشتیبانی نمی شود " را نمایش دهد

دوستان کسی راه حلی بلده :متفکر:

خیلی مهمه برام اگر بشه خیلی عالی میشه :ناراحت: کمکم کنید


بی نهایت از لطفتون سپاسگذارم :قلب:

qartalonline
چهارشنبه 05 تیر 1392, 11:27 صبح
کد زیر :

$n = 9121234567;
$mn = substr( $n , 1, 2);


if( $mn >= 35 && $mn <= 39 )
{
echo 'irancell';

}elseif ( $mn >= 10 && $mn <= 19 ) {

echo 'mci';
}
else {

echo 'unknown';
}

parandweb
چهارشنبه 05 تیر 1392, 11:34 صبح
ممنون دوست خوبم اما شماره موبایلها در بانک اطلاعاتی من به صورت 09121234567 ذخیره شدند چه تغییری توی این کد باید انجام بدم که صحیح کار کند؟

qartalonline
چهارشنبه 05 تیر 1392, 11:47 صبح
از کد زیر استفاده کنید:


$n = '09121234567';
$mn = substr($n, 2, 2);


if( $mn>=35 && $mn<=39 )
{
echo 'irancell';

}elseif ( $mn>=10 && $mn<=19 ){

echo 'mci';

}else{

echo 'unknown';
}

parandweb
چهارشنبه 05 تیر 1392, 11:49 صبح
ممنون اما الان من چه شماره همراه اول و چه ایرانسل رو می زنم خروج unknown چاپ میشه!

H:Shojaei
چهارشنبه 05 تیر 1392, 11:56 صبح
سلام
خب حتما دارين كوتيشن ها رو برميدارين كه نبايد بردارين.
اگه بردارين مقدار صفر عددي در اول آرايه قرار ميگيره كه در نظر گرفته نميشه و به اين صورت اولين مقدار آرايه انديس 1 ميشه.

qartalonline
چهارشنبه 05 تیر 1392, 11:57 صبح
دقیقا از همین کد استفاده میکنید؟ یا تغییری دادید؟

parandweb
چهارشنبه 05 تیر 1392, 12:00 عصر
مرسی دوستان مشکل حل شد بی نهایت ازت سپاسگذارم qartalonline (http://barnamenevis.org/member.php?249869-qartalonline) عزیز

همچنین از شما دوست خوبم H:Shojaei (http://barnamenevis.org/member.php?241637-H-Shojaei) ممنونم

parandweb
چهارشنبه 05 تیر 1392, 12:03 عصر
دوستانی که می خوان در مورد تابع substr بیشتر بدونند به این صفحه مراجعه کنند http://ir2.php.net/substr من امروز با کمک دوستان خوبم تونستم تابع جدیدی از پی اچ پی رو یاد بگیرم و استفاده کنم

MostafaEs3
چهارشنبه 05 تیر 1392, 12:37 عصر
//////////

MMSHFE
چهارشنبه 05 تیر 1392, 13:13 عصر
با اجازه، یکم کد شما رو بهینه سازی کردم:


$mobile = '09156309626';

if (preg_match('#^((\+|00)98)|0?93(0|3|5|6|7|8|9)\d{7 }$#', $mobile)) { echo 'IranCell'; }
if (preg_match('#^((\+|00)98)|0?91[0-9]\d{7}$#' , $mobile)) { echo 'MCI' ; }
if (preg_match('#^((\+|00)98)|0?92(0|1)\d{7}$#' , $mobile)) { echo 'Rightel' ; }
if (preg_match('#^((\+|00)98)|0?932\d{7}$#' , $mobile)) { echo 'Taliya' ; }
if (preg_match('#^((\+|00)98)|0?93(1|4)\d{7}$#' , $mobile)) { echo 'Spadan' ; }
if (preg_match('#^((\+|00)98)|0?934\d{7}$#' , $mobile)) { echo 'TKC' ; }

دقت کنید که استفاده از پرانتزهای تودرتو Performance توابع preg رو خیلی پایین میاره. پس هر چقدر از تعداد پرانتزهای تودرتوی اضافه کم کنیم، بهتره. موفق باشید.

MMSHFE
چهارشنبه 05 تیر 1392, 15:01 عصر
نه اصولش همونه. شما جای دو کد رو عوض کنید، باز هم میبینید که دومی سریعتر اجرا میشه. فکر کنم اولی بخاطر راه اندازی انجین PCRE کمی کندتر باشه ولی مطمئن نیستم.