آموزش php
| |

تابع filter_var() در PHP

تابع filter_var() در PHP یک تابع قدرتمند برای فیلتر کردن داده‌هاست که می‌تواند برای انجام عملیات معتبرسازی و تغییر ورودی‌ها (Sanitization) استفاده شود. این تابع به شما این امکان را می‌دهد که ورودی‌های مختلف را برای اطمینان از صحت آن‌ها و همچنین پاکسازی داده‌ها از کاراکترهای مضر یا نامناسب فیلتر کنید.

فهرست مطالب :

  1. مقدمه
  2. ساختار تابع filter_var()
    • پارامترهای تابع
  3. فیلترهای پیش‌تعریف‌شده در filter_var()
    • FILTER_VALIDATE_EMAIL
    • FILTER_VALIDATE_URL
    • FILTER_VALIDATE_INT
    • FILTER_SANITIZE_EMAIL
    • FILTER_SANITIZE_URL
    • FILTER_SANITIZE_STRING
  4. استفاده از گزینه‌ها در filter_var()
    • محدود کردن عدد صحیح با FILTER_VALIDATE_INT
    • بررسی آدرس IP با FILTER_VALIDATE_IP
  5. خلاصه و نتیجه‌گیری
  6. لینک‌های پیشنهادی

ساختار تابع filter_var()

filter_var($variable, $filter, $options);

پارامترها:

  1. $variable: ورودی که می‌خواهید فیلتر کنید (می‌تواند یک رشته، عدد یا دیگر نوع داده‌ها باشد).
  2. $filter: نوع فیلتر که می‌خواهید اعمال کنید. این می‌تواند یک فیلتر پیش‌تعریف‌شده از مجموعه فیلترهای PHP باشد، مانند FILTER_VALIDATE_EMAIL برای معتبرسازی ایمیل.
  3. $options (اختیاری): این پارامتر می‌تواند یک آرایه از گزینه‌ها باشد که رفتار فیلتر را کنترل می‌کند. برای بیشتر فیلترها این پارامتر ضروری نیست، اما در برخی از فیلترها مانند FILTER_VALIDATE_INT می‌تواند برای تنظیم محدوده عددی ورودی استفاده شود.

فیلترهای پیش‌تعریف‌شده در filter_var()

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

1. FILTER_VALIDATE_EMAIL

برای معتبرسازی آدرس ایمیل.

مثال:

$email = "user@example.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "آدرس ایمیل معتبر است.";
} else {
    echo "آدرس ایمیل نامعتبر است.";
}

2. FILTER_VALIDATE_URL

برای معتبرسازی URL.

مثال:

$url = "https://www.itvisit.ir";
if (filter_var($url, FILTER_VALIDATE_URL)) {
    echo "آدرس URL معتبر است.";
} else {
    echo "آدرس URL نامعتبر است.";
}

3. FILTER_VALIDATE_INT

برای معتبرسازی عدد صحیح (Integer).

مثال:

$age = "25";
if (filter_var($age, FILTER_VALIDATE_INT)) {
    echo "عدد صحیح معتبر است.";
} else {
    echo "عدد صحیح نامعتبر است.";
}

4. FILTER_SANITIZE_EMAIL

برای پاکسازی آدرس ایمیل از کاراکترهای غیرمجاز.

مثال:

$email = "user@example!#$.com";
$clean_email = filter_var($email, FILTER_SANITIZE_EMAIL);
echo $clean_email; // خروجی: user@example.com

5. FILTER_SANITIZE_URL

برای پاکسازی URL از کاراکترهای غیرمجاز.

مثال:

$url = "https://www.itvisit.ir/#!home";
$clean_url = filter_var($url, FILTER_SANITIZE_URL);
echo $clean_url; // خروجی: https://www.itvisit.ir/home

6. FILTER_SANITIZE_STRING

برای حذف تگ‌های HTML و جاوااسکریپت از یک رشته.

مثال:

$string = "<h1>Hello</h1> World!";
$clean_string = filter_var($string, FILTER_SANITIZE_STRING);
echo $clean_string; // خروجی: Hello World!

استفاده از گزینه‌ها در filter_var()

برخی از فیلترها نیاز به تنظیمات اضافی دارند که می‌توانید آن‌ها را با استفاده از پارامتر $options وارد کنید.

مثال 1: محدود کردن عدد صحیح به یک محدوده خاص با FILTER_VALIDATE_INT

$options = array(
    "options" => array(
        "min_range" => 1,
        "max_range" => 100
    )
);
$age = 50;
if (filter_var($age, FILTER_VALIDATE_INT, $options)) {
    echo "عدد در محدوده معتبر است.";
} else {
    echo "عدد در محدوده معتبر نیست.";
}

مثال 2: استفاده از FILTER_VALIDATE_IP برای بررسی آدرس IP

$ip = "192.168.1.1";
if (filter_var($ip, FILTER_VALIDATE_IP)) {
    echo "آدرس IP معتبر است.";
} else {
    echo "آدرس IP نامعتبر است.";
}

خلاصه:

تابع filter_var() یکی از ابزارهای قدرتمند در PHP برای فیلتر کردن داده‌ها است. این تابع به شما کمک می‌کند تا:

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

استفاده از این تابع می‌تواند به شما کمک کند که از خطرات امنیتی مانند SQL Injection، XSS (Cross-Site Scripting) و دیگر حملات رایج جلوگیری کنید.

لینک‌های پیشنهادی:

نوشته‌های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *