D1-kifpool

آموزش PHP - جلسه نوزدهم: فیلترهای پی اچ پی (مقدماتی)

سه‌شنبه ۸ تیر ۱۳۹۵ - ۱۱:۳۰
مطالعه 5 دقیقه
در این جلسه از سری آموزشی پی‌اچ‌پی قصد داریم تا شما را با مبحث فیلترهای این زبان برنامه‌نویسی آشنا کنیم. از فیلترها به منظور اعتبارسنجی و پاکسازی داده‌های ورودی می‌توان بهره گرفت. در ادامه با زومیت همراه باشید.
تبلیغات
D4-mci

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

تابع ()filter_list می‌تواند به منظور لیست کردن تمام فیلترهایی که پی‌اچ‌پی ارائه می‌دهد مورد استفاده قرار گیرد. نرم‌افزار Xampp را اجرا کرده و سرور آپاچی و MySQL را اجرا کنید. در پوشه htdocs یک پوشه به اسم filter ساخته و سپس یک فایل جدید ایجاد کنید. نام این فایل را phpfilter.php تعیین کرده و کد زیر را در آن قرار دهید:

<html><head><style>table, th, td {    border: 1px solid black;    border-collapse: collapse;}th, td {    padding: 5px;}</style></head><body><table>  <tr>    <td>Filter Name</td>    <td>Filter ID</td>  </tr>    foreach (filter_list() as $id =>$filter) {      echo '' . $filter . '' . filter_id($filter) .'';  }  ?></table></body></html> 

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

چرا باید از فیلترها استفاده کنیم؟

بسیاری از اپلیکیشن‌های تحت وب قطعا نیاز به ورودی و خروجی داده‌ها توسط کاربران دارد که این داده‌ها می‌تواند یکی از موارد زیر باشد:

  • ورودی داده‌ها توسط کاربر در فرم‌ها
  • کوکی‌ها
  • داده‌های وب‌سرویس
  • متغیرهای سرور
  • نتایج کوئری‌های بانک‌های اطلاعاتی

شما باید همیشه چنین نوع داده‌هایی را اعتبارسنجی کنید.

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

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

کپی لینک

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

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

$str = "Hello World!";$newstr = filter_var($str, FILTER_SANITIZE_STRING);echo $newstr;?>

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

Hello World!

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

کپی لینک

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

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

$int = 100;if (!filter_var($int, FILTER_VALIDATE_INT) === false) {    echo("Integer is valid");} else {    echo("Integer is not valid");}?>

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

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

$int = 0;if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {    echo("Integer is valid");} else {    echo("Integer is not valid");}?>

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

Integer is valid

کپی لینک

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

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

$ip = "127.0.0.1";if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {    echo("$ip is a valid IP address");} else {    echo("$ip is not a valid IP address");}?>

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

127.0.0.1 is a valid IP address

همانور که می‌بینید از فیلتر FILTER_VALIDATE_IP در تابع ()filter_var می‌توان به منظور اعتبارسنجی آی‌پی بهره گرفت. 

کپی لینک

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

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

$email = "john.doe@example.com";// Remove all illegal characters from email$email = filter_var($email, FILTER_SANITIZE_EMAIL);// Validate e-mailif (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {    echo("$email is a valid email address");} else {    echo("$email is not a valid email address");}?>

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

test@example.com is a valid email address

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

سپس با فیلتر FILTER_VALIDATE_EMAIL و یک عبارت شرطی صحیح بودن فرمت کلی ایمیل را بررسی کرده‌ایم.

کپی لینک

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

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

$url = "https://www.zoomit.ir";// Remove all illegal characters from a url$url = filter_var($url, FILTER_SANITIZE_URL);// Validate urlif (!filter_var($url, FILTER_VALIDATE_URL) === false) {    echo("$url is a valid URL");} else {    echo("$url is not a valid URL");}?>

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

https://www.zoomit.ir is a valid URL

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

اگر در مورد مباحث این جلسه هرگونه سوالی دارید در بخش نظرات آن را اعلام کنید.

مقاله رو دوست داشتی؟
نظرت چیه؟
تبلیغات
D5-b3IranServer
داغ‌ترین مطالب روز
بهترین تبلت های بازار ایران [بهار ۱۴۰۴]

برای خرید تبلت مناسب، نیازی نیست حتماً پول زیادی پرداخت کنید. در راهنمای خرید پیش‌ رو، بهترین تبلت‌های بازار ایران را معرفی می‌کنیم.

285
2 روز پیش
تصویر اتم آزاد
فیزیک‌دان‌ها برای اولین بار تصویر اتم‌های آزاد را ثبت کردند

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

13
2 روز پیش
آنتی ویروس ویندوز
چگونه آنتی ویروس ویندوز ۱۰ را غیر فعال کنیم؟

بعضی از کاربران ویندوز به‌دنیال روش های خاموش كردن آنتي ويروس ویندوز ۱۰ هستند، زیرا این سیستم امنیتی بومی گاهی برای آن‌ها دست‌وپاگیر می‌شود.

27
2 روز پیش
ساخت اپل اکانت
آموزش ساخت اپل آیدی Apple ID رایگان (آپدیت جدید ۱۴۰۴)

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

352
2 روز پیش
پهپاد دی‌جی‌آی مویک ۴ پرو در حال پرواز
پیشرفته‌ترین پهپاد DJI رونمایی شد؛ محصولی که آمریکایی‌ها از خرید آن محروم‌اند

DJI پهپاد جدید مویک ۴ پرو را با قابلیت تصویربرداری پیشرفته‌تر و شارژدهی بالاتر رونمایی کرد.

19
2 روز پیش
خلیج فارس
پاسخ حقوقی ایران به تحریف گوگل؛ کار به دادگاه کشیده می‌شود

سخنگوی مرکز ملی فضای مجازی از پیگیری حقوقی اقدام اخیر گوگل در تحریف نام خلیج فارس خبر داد.

238
2 روز پیش
بهترین هارد اکسترنال های موجود در بازار ایران - تصویر اصلی
بهترین هارد و SSD اکسترنال بازار [بهار ۱۴۰۴]

تنوع زیاد هارد اکسترنال در بازار، انتخاب مدل مناسب را دشوار می‌کند. در این مقاله با بهترین هاردهای اکسترنال موجود در بازار ایران آشنا می‌شویم.

75
2 روز پیش
تبلیغات
DN-DNShatel

نظرات

با چشم باز خرید کنید
زومیت شما را برای انتخاب بهتر و خرید ارزان‌تر راهنمایی می‌کند
ورود به بخش محصولات