Farzad

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

11 پست در این موضوع قرار دارد

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

یه سوال در رابطه با 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 شروع میشن :)

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

0

به اشتراک گذاری این پست


لینک به پست

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


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

5

به اشتراک گذاری این پست


لینک به پست

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


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

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


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

6

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

0

به اشتراک گذاری این پست


لینک به پست

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


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

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

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

4

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

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

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

0

به اشتراک گذاری این پست


لینک به پست

اینو تست کنید ببینید میشه :


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

2

به اشتراک گذاری این پست


لینک به پست

تشکر کسری جان ؛

ولی بازم نشد ! :(

0

به اشتراک گذاری این پست


لینک به پست

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


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

ویرایش شده در توسط Anisi
3

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

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

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

سلام

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


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

3

به اشتراک گذاری این پست


لینک به پست

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


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

2

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری