خانه / آموزش کامل PHP / آموزش کامل PHP – قسمت ۲۶: فیلتر ها
آموزش پی اچ پی

آموزش کامل PHP – قسمت ۲۶: فیلتر ها

فیلتر ها در php

در این قسمت از آموزش های php با فیلتر های این زبان به منظور اعتبارسنجی و پاکسازی داده‌های ورودی آشنا خواهیم شد. ممکن است برخی از داده‌های ورودی مشکلات و مسائل امنیتی مهمی را در صفحات وب شما ایجاد کنند. در این شرایط فیلترهای پی‌اچ‌پی می‌توانند به منظور اعتبارسنجی داده ها مورد استفاده قرار گیرند. فیلترهای پی‌اچ‌پی شامل توابع بسیاری برای بررسی ورودی‌های کاربر بوده و طراحی شده تا داده‌ها را به روشی آسان‌تر و سریع‌ تر اعتبارسنجی کند.

تابع ()filter_list

به کمک این تابع می توانیم تمامی فیلتر هایی که در php ارائه می شود را لیست کنیم. برای استفاده از تابع سرور مجازی خود را اجرا کرده و در پوشه اصلی آن پوشه ای دیگر ایجاد کنید و فایلی به نام phpfilter.php بسازید. سپس کد های زیر را در آن قرار دهید:

نتیجه اجرای کد زیر چیزی شبیه جدول زیر خواهد شد:

Filter Name Filter ID
int ۲۵۷
boolean ۲۵۸
float ۲۵۹
validate_regexp ۲۷۲
validate_url ۲۷۳
validate_email ۲۷۴
validate_ip ۲۷۵
string ۵۱۳
stripped ۵۱۳
encoded ۵۱۴
special_chars ۵۱۵
full_special_chars ۵۲۲
unsafe_raw ۵۱۶
email ۵۱۷
url ۵۱۸
number_int ۵۱۹
number_float ۵۲۰
magic_quotes ۵۲۱
callback ۱۰۲۴

همانطور که در جدول بالا مشاهده می‌کنید تمامی فیلترهایی که پی‌اچ‌پی ارائه می‌کند لیست شده‌اند.

تابع ()filter_var

این تابع می تواند دو عملیات اعتبار سنجی و بهینه سازی داده ها را انجام دهد. تابع دو ورودی می‌گیرد، یکی داده‌ای که قصد داریم آن را اعتبارسنجی و پاکسازی کنیم و دیگری نوع فیلتری که قصد استفاده از آن را داریم.

بهینه‌سازی یک رشته متنی

در مثال زیر از تابع ()filter_var به منظور حذف تگ‌های اچ‌تی‌ام‌ال از رشته متنی استفاده شده است:

همانطور که می‌بینید تگ‌های HTML از این رشته متنی حذف شده است. در مثال بالا ابتدا متغیر str را به عنوان ورودی تعیین کرده و پس از قرار دادن یک کاما، نوع فیلتر مورد نظر خود را به عنوان ورودی دوم تعیین می‌کنیم. با استفاده از فیلتر FILTER_SANITIZE_STRING می‌توان تگ‌های اچ‌تی‌ام‌ال اضافه را از رشته‌های متنی حذف کرد.

اعتبارسنجی عدد

در مثال زیر با استفاده از ()filter_var قصد داریم تا متغیری از نوع عددی را بررسی کنیم. اگر متغیر ما واقعا عدد صحیح باشد خروجی ما عبارت Integer is valid خواهد بود. اگر این متغیر عددی نباشد خروجی عبارت Integer is not valid است.

همانطور که در مثال بالا هم می‌بینید ورودی اول متغیر int بوده و در شرط فیلتر بررسی عددی یعنی FILTER_VALIDATE_INT قرار داده شده است.

نکته‌ای در هنگام کار با تابع ()filter_var در مورد عدد صفر وجود دارد. اگر در مثال بالا مقدار متغیر int برابر با صفر باشد خروجی تابع Integer is not valid می‌شود. برای حل این مشکل باید از کدی مانند زیر استفاده کنیم:

نتیجه اجرای کد بالا به صورت زیر خواهد بود:

Integer is valid

اعتبارسنجی آی‌پی

در مثال زیر با استفاده از تابع ()filter_var قصد داریم تا محتوای متغیر ip را بررسی کنیم که آیا این متغیر حاوی یک آی‌پی معتبر است یا خیر:

نتیجه اجرای کد بالا به صورت زیر خواهد بود:

۱۲۷٫۰٫۰٫۱ is a valid IP address

اعتبارسنجی ایمیل

در مثال زیر با استفاده از تابع ()filter_var قصد دارید تا تمام کاراکترهای غیرقانونی را از متغیر email حذف کرده و سپس بررسی کنیم که آیا فرمت ایمیل صحیح است یا خیر:

نتیجه اجرای کد فوق به صورت زیر خواهد بود:

pardiswp@gmailcom is a valid email address

همانطور که می‌بینید ابتدا با تابع فیلتر پی‌اچ‌پی و فیلتر FILTER_SANITIZE_EMAIL قصد داریم تا متغیر email را از نظر کاراکترهای غیرقانونی بررسی کرده و سپس کاراکترهای اضافه را از آن حذف کنیم. سپس با فیلتر FILTER_VALIDATE_EMAIL و یک عبارت شرطی صحیح بودن فرمت کلی ایمیل را بررسی کرده‌ایم.

اعتبارسنجی آدرس URL

در مثال زیر با استفاده از تابع ()filter_var ابتدا تمامی کاراکترهای غیرقانونی را از آدرس URL حذف کرده و سپس آن را بررسی می‌کنیم تا ببینیم یک URL معتبر است یا خیر:

نتیجه اجرای کد فوق نیز به صورت زیر خواهد بود:

http://www.pardiswp.com is a valid URL

در این جلسه بیشتر فیلترهای پرکاربرد پی‌اچ‌پی را مرور کردیم. در جلسه آینده فیلترهای پیشرفته‌تری را بررسی می‌کنیم.

درباره ما admin

محمد صفری : مدیر پردیس وردپرس ، مهندس نرم افزار و طراح سایت

این موارد رو هم بررسی کنید

آموزش پی اچ پی

آموزش کامل PHP – قسمت ۲۵: تاریخ شمسی

تاریخ شمسی در php تمام آنچه که در جلسه قبلی گفته شد فقط برای تاریخ‌های …

پاسخ دهید