تابع filter_var() در PHP
تابع filter_var()
در PHP یک تابع قدرتمند برای فیلتر کردن دادههاست که میتواند برای انجام عملیات معتبرسازی و تغییر ورودیها (Sanitization) استفاده شود. این تابع به شما این امکان را میدهد که ورودیهای مختلف را برای اطمینان از صحت آنها و همچنین پاکسازی دادهها از کاراکترهای مضر یا نامناسب فیلتر کنید.
فهرست مطالب :
- مقدمه
- ساختار تابع
filter_var()
- پارامترهای تابع
- فیلترهای پیشتعریفشده در
filter_var()
FILTER_VALIDATE_EMAIL
FILTER_VALIDATE_URL
FILTER_VALIDATE_INT
FILTER_SANITIZE_EMAIL
FILTER_SANITIZE_URL
FILTER_SANITIZE_STRING
- استفاده از گزینهها در
filter_var()
- محدود کردن عدد صحیح با
FILTER_VALIDATE_INT
- بررسی آدرس IP با
FILTER_VALIDATE_IP
- محدود کردن عدد صحیح با
- خلاصه و نتیجهگیری
- لینکهای پیشنهادی
ساختار تابع filter_var()
filter_var($variable, $filter, $options);
پارامترها:
- $variable: ورودی که میخواهید فیلتر کنید (میتواند یک رشته، عدد یا دیگر نوع دادهها باشد).
- $filter: نوع فیلتر که میخواهید اعمال کنید. این میتواند یک فیلتر پیشتعریفشده از مجموعه فیلترهای PHP باشد، مانند
FILTER_VALIDATE_EMAIL
برای معتبرسازی ایمیل. - $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) و دیگر حملات رایج جلوگیری کنید.