رفتن به مطلب

یک تغییر در کد شرطی php


پست های پیشنهاد شده

سلام دوستان عزیز

یه سوال در رابطه با php پیش اومده واسم. (متاسفانه تسلط php کافی نبود..)

یک نفر کد شرطی زیر رو برامون نوشت که می تونست آدرس ایمیل رو از صفحه ای برداره.


if(preg_match_all("/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i",$data,$matches))

حالا میخواستیم نوعی تنظیم بشه که بجای ایمیل ، شماره موبایل رو از این صفحه برداره

یعنی مواردی که با 989+ شروع میشه یا با 09 شروع میشن :)

بجای این شرط چه چیزی رو جایگزین کنم ؟

لینک به ارسال

شک دارم ولی تست کنید و نتیجه را بگید


if(preg_match_all("/[+989][09]*([0-9]{9,}/i",$data,$matches))

لینک به ارسال

پترنی که دنبالشی اینه


/(^|\+)?[0-9]{11,12}+(?:\.[0-9]*)?/i

یعنی کدت میشه این


if( preg_replace_all(/(^|\+)?[0-9]{11,12}+(?:\.[0-9]*)?/i, $data, $matches) )

لینک به ارسال

ممنون از ایمان و مهر داد عزیز ،

کدی که اقا ایمان دادن با یک تغییر کوچک کار کرد ،

فقط دوستان یک سوال ،

اگر شماره موبایل وسط رقم هاش اسپیس باشه میشه کد رو به حالتی درآورد که اسپیس بین اعداد رو هم قبول کنه و اون شماره رو هم پیدا کنه ؟

لینک به ارسال

اسپیس را داخل آکولاد به کد اضافه کنید


if(preg_match_all("/[+989][09]*([0-9][ ]{9,}/i",$data,$matches))

و البته تغییری ه روی کد قبلا داده بودید هم که دوباره اعمال می کنید

البته فکر کنم عدد 9 آخر که تعداد کاراکترهای باقی مانده است باید به تعداد اسپیس ها بالا بره

لینک به ارسال

ایمان جان، این کد رو هم تست کردم ولی متاسفانه کار نکرد.

(برای اسپیس ها منظورم هست)

یعنی نه شماره هایی که اسپیس داشتن ارائه شدن ، و نه شماره هایی که اسپیس نداشتن..

فکر میکنم باید اسپیس طور دیگه ای به کد اضافه بشه.

ضمنا از نظر تعداد کاراکتر هم تست کردم و عدد 9 رو 10 و 11 هم گذاشتم! ولی کار نکرد ...

نظری دارین دوستان ؟

لینک به ارسال

این یکی چطور؟! البته من زیاد بلد نیستم :(


^([+989]|[09])([0-9 ]+)$

ویرایش شده توسط Anisi
لینک به ارسال

ایمان جان، این کد رو هم تست کردم ولی متاسفانه کار نکرد.

(برای اسپیس ها منظورم هست)

یعنی نه شماره هایی که اسپیس داشتن ارائه شدن ، و نه شماره هایی که اسپیس نداشتن..

فکر میکنم باید اسپیس طور دیگه ای به کد اضافه بشه.

ضمنا از نظر تعداد کاراکتر هم تست کردم و عدد 9 رو 10 و 11 هم گذاشتم! ولی کار نکرد ...

نظری دارین دوستان ؟

سلام

شما اول space ها رو پیدا کنید و حذف کنید و سپس شماره ها رو با کدهای بالا واکشی کنید


$string = preg_replace('/\s/', '', $original_string);

لینک به ارسال

راهی که علیرضای گرامی فرمودند عالیه و فکر می کنم کدهای بالا هم با این تغییر عمل کنند


if(preg_match_all("/[+989][09]*([0-9]{3,}*([0-9]{3,}*([0-9]{3,}/i",$data,$matches)

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...