کلاس آماده برای نوشتن Regex - نسخهی قابل چاپ +- انجمن عمومی گسترش فناوری آگو (http://forums.ago.ir) +-- انجمن: انجمن های عمومی گسترش فناوری آگو (/forumdisplay.php?fid=1) +--- انجمن: برنامه نویسی (/forumdisplay.php?fid=13) +--- موضوع: کلاس آماده برای نوشتن Regex (/showthread.php?tid=2424) |
کلاس آماده برای نوشتن Regex - agotd - 05-01-2014 01:54 PM توی این سایت و سایتهای دیگه ممکنه با عبارات با قاعده یا Regex ها برخورده باشید. یا شاید هم ممکنه توی پروژه هاتون از عبارات با قاعده استفاده کرده باشید.همینطور که میدونید کار با این ابزار نسبتا سخته و باید برای نوشتن عبارات با قاهده تسلط کامل بهش داشت.امروز میخوام کلاسی رو براتون معرفی کنم که از شر نوشتن Regex راحت شید. کلاس VerbalExperssions یک کلاس که دراصل برای زبان جاوااسکریپت نوشته شده و بقیه توسعه دهنده ها اومدن و برای زبانهای مختلف این کلاس رو توسعه دادن. باید خوشحال باشیم که یک کلاس هم برای زبان PHP نوشته شده که در ادامه نحوه کار کرد این کلاس رو میبینیم باهم. ابتدا کلاس رو از لینک زیر دانلود کنید : دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید. بعد از اینکه فایل رو از حالت فشرده خارج کردین کلاس VerbalExpressions.php رو توی مسیر روت قرار بدین. یک فایل با نام index.php ایجاد کنید که قراره کدهای زیر رو داخلش بنویسیم . ابتدا کلاس VerbalExpressions.php رو توی برنامه include میکنیم : کد php: include 'VerbalExpressions.php'; سپس از این کلاس یک شیء جدید میسازیم : کد php: $regex = new \VerbalExpressions\PHPVerbalExpressions\VerbalExpressions(); دقت کنید که این کلاس از namespace استفاده کرده پس حتما نام کامل namespace رو هم باید ذکر کنیم . از اینجا کار اصلی ما شروع میشه. فرض کنید میخوایم به وسیله ی Regex ببینیم که آیا یک آدرس URL صحیح وارد شده یا خیر. کدهای زیر رو داخل فایل index.php قرار بدید : کد php: $url = "http://phpro.ir"; فکر کنم که متدهای این کلاس به وضوح مشخصه که چطورکار میکنن اما یه توضیح کوچیک میدم براتون. متد startOfLine : چک میکنه که با چی شروع بشه متد then : چک میکنه که حتما دارای http باشه متد maybe : مشخص میکنه که ممکنه حرف s هم بعد از http باشه متد anythingBut : چک میکنه که هر چیزی به غیر از فاصله وجود داشته باشه متد endOfLine : پایان regex رو مشخص میکنه. به همین راحتی تونستیم یک عبارت باقاعده یا regex رو برای اعتبار سنجی URL بنویسیم. بعد از اینکار میتونی با متد test چک کنیم ببینیم که آیا آدرس ما درسته یا خیر. به صورت زیر هم میشه از این کلاس استفاده کرد : کد php: if (preg_match($regex, $url)) { متغیر #regex در اصل همون شیء ساخته شده VerbalExperssions هست که توی تابع preg_match ازش استفاده کردیم. این کلاس واقعا کاربردیه و میتونید توی پروژه هاتون ازش استفاده کنید. برای اطلاعات بیشتر هم میتونید فایل نمونه خودش رو نگاه کنید . موفق باشید |