PHP:فیلترها در PHP

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

ارزیابی داده‌ها = بررسی اینکه آیا داده در حالت صحیح قرار دارد. [۱]

حذف کاراکترهای نامعتبر از داده‌ها = حذف هر گونه کاراکتر غیرمعتبر از داده.

فیلتر فرمت در PHP

فیلترها در PHP برای ارزیابی و جدا کردن ورودی خارجی استفاده می‌شوند.

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

تابع filter_list() می‌تواند برای لیست کردن آنچه فیلتر فرمت PHP در اختیار ما می‌گذارد، استفاده شود:

مثال

 1 <table>
 2   <tr>
 3     <td>Filter Name</td>
 4     <td>Filter ID</td>
 5   </tr>
 6   <?php
 7   foreach (filter_list() as $id =>$filter) {
 8       echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
 9   }
10   ?>
11 </table>

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

بسیاری از نرم‌افزارهای تحت وب ورودی خارجی دریافت می‌کند. ورودی/داده خارجی می‌تواند به صورت‌های زیر باشد:

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


تابع filter_var() در PHP

تابع filter_var() هر دو کار ارزیابی و حذف کاراکترهای غیرمعتبر از داده را انجام می‌دهد.

تابع filter_var() یک متغیر را با یک فیلتر مشخص شده فیلتر می‌کند. این تابع دو بخش را دریافت می‌کند:

  • متغیری که شما می‌خواهید آن را بررسی کنید
  • نوع بررسی‌ای که می‌خواهید استفاده کنید

حذف کردن کاراکترهای نامعتبر از یک رشته متنی

مثال زیر از تابع filter_var() استفاده می‌کند تا تمامی تگ‌های HTML را از یک رشته متنی پاک کند:

مثال

1 <?php
2 $str = "<h1>Hello World!</h1>";
3 $newstr = filter_var($str, FILTER_SANITIZE_STRING);
4 echo $newstr;
5 ?>

ارزیابی یک عدد صحیح

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

مثال

1 <?php
2 $int = 100;
3 
4 if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
5     echo("Integer is valid");
6 } else {
7     echo("Integer is not valid");
8 }
9 ?>


نکته: تابع filter_var() و مشکل با ۰

در مثال بالا، در صورتی که متغیر $int با عدد ۰ مقدار دهی می‌شد، تابع بالا مقدار «نوع عدد صحیح نامعتبر است» را برمی‌گرداند. برای حل این مشکل، از کد زیر استفاده کنید:

مثال

1 <?php
2 $int = 0;
3 
4 if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
5     echo("Integer is valid");
6 } else {
7     echo("Integer is not valid");
8 }
9 ?>

ارزیابی یک آدرس IP

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

مثال

1 <?php
2 $ip = "127.0.0.1";
3 
4 if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
5     echo("$ip is a valid IP address");
6 } else {
7     echo("$ip is not a valid IP address");
8 }
9 ?>

حذف کردن کاراکترهای نامعتبر و ارزیابی یک آدرس ایمیل

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

مثال

 1 <?php
 2 $email = "john.doe@example.com";
 3 
 4 // Remove all illegal characters from email
 5 $email = filter_var($email, FILTER_SANITIZE_EMAIL);
 6 
 7 // Validate e-mail
 8 if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
 9     echo("$email is a valid email address");
10 } else {
11     echo("$email is not a valid email address");
12 }
13 ?>

حذف کردن کاراکترهای نامعتبر و ارزیابی یک آدرس اینترنتی

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

مثال

 1 <?php
 2 $url = "https://www.w3schools.com";
 3 
 4 // Remove all illegal characters from a url
 5 $url = filter_var($url, FILTER_SANITIZE_URL);
 6 
 7 // Validate url
 8 if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
 9     echo("$url is a valid URL");
10 } else {
11     echo("$url is not a valid URL");
12 }
13 ?>

مرجع کامل فیلترها در PHP

برای یک مرجع کامل از تمامی توابع فیلتر، به مرجع کامل ما در مورد فیلترها در PHP مراجعه کنید. هر فیلتر را بررسی کنید تا ببینید که چه تنظیماتی و علائم‌هایی (به انگلیسی: flags) در دسترس هستند.

این مرجع شامل یک توضیحات خلاصه، و مثال‌هایی از نحوه استفاده، برای هر تابع است!

منابع آموزشی