فیلترهای پیشرفته (Filters Advanced)
اینجا با «فیلترهای پیشرفته پی اچ پی» کار می کنیم. «فیلتر (Filter)» یعنی قانونِ چک کردن یا تمیزکردن داده. حالا روی بازه ها، آی پی نسخه 6، و URL با کوئری تمرکز می کنیم. برای پایه ها، از فیلترهای PHP شروع کن. همچنین برای سئو، این لینک را نگه دار: فیلترهای پیشرفته پی اچ پی.
اعتبارسنجی عدد در بازه
می خواهیم «عدد صحیح (Integer)» بین 1 تا 200 باشد. با گزینه های min_range و max_range بازه را تعیین کن.
- عدد را در متغیر قرار بده.
- فیلتر INT را با options تنظیم کن.
- نتیجه را چاپ کن.
<?php
$int = 122;
$min = 1;
$max = 200;
if (filter_var(
$int,
FILTER_VALIDATE_INT,
array("options" => array("min_range" => $min, "max_range" => $max))
) === false) {
echo("Variable value is not within the legal range");
} else {
echo("Variable value is within the legal range");
}
?>
اعتبارسنجی IPv6
می خواهیم آی پی نسخه 6 را بررسی کنیم. از «پرچم (Flag)» FILTER_FLAG_IPV6 استفاده کن.
<?php
$ip = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334";
if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) {
echo($ip . " is a valid IPv6 address");
} else {
echo($ip . " is not a valid IPv6 address");
}
?>
URL با کوئری اجباری
گاهی باید URL حتما «QueryString» داشته باشد. از پرچم FILTER_FLAG_QUERY_REQUIRED کمک بگیر.
<?php
$url = "https://www.w3schools.com";
if (!filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false) {
echo($url . " is a valid URL with a query string");
} else {
echo($url . " is not a valid URL with a query string");
}
?>
حذف کاراکترهای با ASCII بالاتر از 127
می خواهیم رشته را تمیز کنیم. هم تگ ها حذف شوند، هم حروف با کد بالای 127.
<?php
$str = "<h1>Hello WorldÆØÅ!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
echo $newstr;
?>
مرجع کامل فیلترها
برای جزئیات همه گزینه ها و پرچم ها، مرجع فیلتر را ببین.
جمع بندی سریع
- برای بازه اعداد، از options استفاده کن.
- IPv6 را با FILTER_FLAG_IPV6 چک کن.
- URL با کوئری را اجباری کن.
- کاراکترهای بالای 127 را حذف کن.
- برای پایه ها، بخش فیلترها را بخوان.