دراين بخش براي كنترل اطلاعات از فيلتر هاي پيشرفته تري نسبت به بخش قبلي استفاده مي نمائيم. اين موارد براي داده ها باساختار پيچيده تر استفاده ميگردد.
مثال ـ در برنامه زير يك متغير با نام $intداراي مينيمم وماكزيممم توسط تابع filter_var( )اعتبار سنجي ميگردد .يعني همinteger بودن وهم كنترل مقدار در محدوده قابل قبول.
<?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"); } ?>
اگر بدستور كنترلي تابع توجه كنيد، يك پارامتر نسبت به قبل بيشتر دارد .اين پارامتر يك آرايه ميباشد كه شامل مقادير حداقل وحد اكثر است .نام آرايه"options"ميباشد.
نكته برنامه فوق در مورد عدم صحيح بودن$int پيغامي صادر نميكند .خودتان ميتوانيد در اديتور اين را آزمايش كنيد .اما متن اصلي مدعي كنترل نوع ومحدوه ميباشد.
مثال ـ در مثال زير كنترل صحيح بودن$int بررسي شده وپيغام مناسب داده ميشود . برنامه فوق مشكل مثال بالا را برطرف نموده است.
<?php $int = "0"; $min = -1; $max = 200; if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false){ 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"); } } else { echo "var is not integer";} ?>
درمثال زير مثال -IPv6 با دو فيلتر توسط تابع filter_var( ) اعتبار سنجي ميشود .
اين دو فياتر عبارتند از
<?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"); } ?>
مثال ـ در مثال زير از تابعfilter_var( ) براي كنترل متغير $urlكه بايد شاملQueryString باشد، استفاده شده است.
<?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"); } ?>
مثال ـ در مثال زير براي حذف يا پاكسازي كراكترهاي اسكي برزگتر از127 يك عبارت، از تابعfilter_var( ) با دو فيلتراستفاده شدهاست.
<?php $str = "<h1>Hello World???!</h1>"; $newstr = filter_var($str, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH); echo $newstr; ?>
توجه ـ براي اطلاعات از توابع فيلترينگ به مرجع كامل آن بسايتW3schools مراجعه نمائيد.