شما عضو این انجمن نبوده یا وارد نشده اید. لطفا برای مشاهده کامل انجمن و استفاده از آن وارد شوید یا ثبت نام کنید .
باشگاه کاربران روماک
کلاس آماده برای نوشتن Regex - نسخه‌ی قابل چاپ

+- باشگاه کاربران روماک (https://forum.romaak.ir)
+-- انجمن: انجمن طراحی سایت و برنامه نویسی (https://forum.romaak.ir/forumdisplay.php?fid=78)
+--- انجمن: کد نویسی (https://forum.romaak.ir/forumdisplay.php?fid=79)
+---- انجمن: PHP (https://forum.romaak.ir/forumdisplay.php?fid=46)
+---- موضوع: کلاس آماده برای نوشتن Regex (/showthread.php?tid=4969)



کلاس آماده برای نوشتن Regex - saberi - ۹۷/۱/۱۵

در سایتها ممکنه با عبارات با قاعده یا Regex ها برخورد کرده باشید یا اینکه در پروژه هاتون از عبارات با قاعده استفاده کرده باشید.
کار با این ابزار نسبتا سخته و باید برای نوشتن عبارات با قاعده تسلط کامل به اون داشت. در این پست میخوام کلاسی رو براتون معرفی کنم که از نوشتن Regex راحت بشید.
کلاس VerbalExperssions یک کلاس که در اصل برای زبان جاوااسکریپت نوشته شده و بقیه توسعه دهنده ها اومدن و برای زبانهای مختلف این کلاس رو توسعه دادند. باید خوشحال باشیم که یک کلاس هم برای زبان PHP نوشته شده که در ادامه نحوه کارکرد این کلاس رو مشاهده می کنیم.

ابتدا کلاس رو از لینک زیر دانلود کنید :
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.


بعد از اینکه فایل رو از حالت فشرده خارج کردین کلاس VerbalExpressions.php رو توی مسیر روت قرار بدین.
یک فایل با نام index.php ایجاد کنید که قراره کدهای زیر رو داخلش بنویسیم .
ابتدا کلاس VerbalExpressions.php رو توی برنامه include می کنیم :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

سپس از این کلاس یک شیء جدید می سازیم :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

دقت کنید که این کلاس از namespace استفاده کرده پس حتما نام کامل namespace رو هم باید ذکر کنیم . از اینجا کار اصلی ما شروع میشه. فرض کنید میخوایم به وسیله ی Regex ببینیم که آیا یک آدرس URL صحیح وارد شده یا خیر.

کدهای زیر رو داخل فایل index.php قرار بدید  :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

فکر کنم که متدهای این کلاس به وضوح مشخصه که چطورکار میکنن اما یه توضیح کوچیک میدم براتون.
متد startOfLine : چک میکنه که با چی شروع بشه
متد then : چک میکنه که حتما دارای http باشه
متد maybe : مشخص میکنه که ممکنه حرف s هم بعد از http باشه
متد anythingBut : چک میکنه که هر چیزی به غیر از فاصله وجود داشته باشه
متد endOfLine : پایان regex رو مشخص میکنه.

به همین راحتی تونستیم یک عبارت باقاعده یا regex رو برای اعتبار سنجی URL بنویسیم.
بعد از اینکار میتونیم با متد test چک کنیم ببینیم که آیا آدرس ما درسته یا خیر.
به صورت زیر هم میشه از این کلاس استفاده کرد :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

متغیر #regex در اصل همان شیء ساخته شده VerbalExperssions هست که توی تابع preg_match ازش استفاده کردیم.
این کلاس واقعا کاربردی هست و میتونید توی پروژه هاتون ازش استفاده کنید.
برای اطلاعات بیشتر هم میتونید فایل نمونه خودش رو نگاه کنید .
موفق باشین