PHP Filters
In this page:
$result = filter_var($value, FILTER_VALIDATE_EMAIL); // value, or false
$result = filter_var($value, FILTER_VALIDATE_INT);
$result = filter_var($value, FILTER_VALIDATE_URL);
$result = filter_var($value, FILTER_VALIDATE_BOOLEAN);
filter_var() क्या है?
filter_var() एक ही function call में एक single value को एक named filter के against validate या sanitize करता है, success पर cleaned value return करते हुए या failure पर false।
यह उस validation logic को centralize करता है जो अन्यथा regular expressions और manual checks में बिखरी होती।
उदाहरण: What is filter_var()?
<?php
// Declare `$email`, set to "[email protected]"
$email = "[email protected]";
// Declare `$result`, set to `filter_var($email, FILTER_VALIDATE_EMAIL)`
$result = filter_var($email, FILTER_VALIDATE_EMAIL);
// Print `$result` to the output
echo $result;
?>
Login to try C/C++/Java/PHP code in the editor
Email और Integers Validate करना
FILTER_VALIDATE_EMAIL किसी string को एक valid email address के structural rules के against check करता है, और FILTER_VALIDATE_INT confirm करता है कि एक value genuinely एक integer है — दोनों throw करने के बजाय failure पर false return करते हैं, इसलिए result को हमेशा === false से check करना ज़रूरी है, सिर्फ falsy checks से नहीं।
उदाहरण: Validating Email and Integers
<?php
// Print a detailed dump (with types) of `filter_var("[email protected]", FILTER_VALIDATE_EMAIL) === false`
var_dump(filter_var("[email protected]", FILTER_VALIDATE_EMAIL) === false);
// Print a detailed dump (with types) of `filter_var("42", FILTER_VALIDATE_INT) === false`
var_dump(filter_var("42", FILTER_VALIDATE_INT) === false);
?>
Login to try C/C++/Java/PHP code in the editor
URLs और Booleans Validate करना
FILTER_VALIDATE_URL confirm करता है कि एक string एक well-formed URL है, जबकि FILTER_VALIDATE_BOOLEAN "yes", "1", और "off" जैसी common truthy/falsy strings को एक real boolean value में interpret करता है, जो एक plain PHP boolean cast से ज़्यादा forgiving है।
उदाहरण: Validating URLs and Booleans
<?php
// Print a detailed dump (with types) of `filter_var("https://example.com", FILTER_VALIDATE_URL)`
var_dump(filter_var("https://example.com", FILTER_VALIDATE_URL));
// Print a detailed dump (with types) of `filter_var("yes", FILTER_VALIDATE_BOOLEAN)`
var_dump(filter_var("yes", FILTER_VALIDATE_BOOLEAN));
?>
Login to try C/C++/Java/PHP code in the editor
Input Sanitize करना
FILTER_SANITIZE_STRING (या htmlspecialchars इस्तेमाल करने वाला इसका modern replacement) और FILTER_SANITIZE_EMAIL जैसे sanitizing filters किसी value से unwanted characters strip या encode करते हैं इसे पूरी तरह reject करने के बजाय — तब उपयोगी जब आप safe display के लिए input साफ करना चाहते हों, सिर्फ इसका shape verify करना न हो।
उदाहरण: Sanitizing Input
<?php
// Declare `$comment`, set to "<b>Hello</b>"
$comment = "<b>Hello</b>";
// Print `htmlspecialchars($comment) . "\n"` to the output
echo htmlspecialchars($comment) . "\n";
// Print `filter_var("user@ example.com", FILTER_SANITIZE_EMAIL)` to the output
echo filter_var("user@ example.com", FILTER_SANITIZE_EMAIL);
?>
Login to try C/C++/Java/PHP code in the editor
Untrusted Input के लिए Filtering क्यों मायने रखती है
$_GET, $_POST, या $_COOKIE से आने वाले किसी भी data को तब तक untrusted माना जाना चाहिए जब तक साबित न हो जाए, क्योंकि एक user (या एक attacker) पूरी तरह control करता है कि क्या भेजा गया है।
Entry point पर filtering malformed या malicious data को किसी database query तक पहुँचने या HTML में वापस echo होने से पहले पकड़ लेती है।
उदाहरण: Why Filtering Matters for Untrusted Input
<?php
// Set `$_GET['id']` to "5 OR 1=1"
$_GET['id'] = "5 OR 1=1";
// Declare `$id`, set to `filter_var($_GET['id'], FILTER_VALIDATE_INT)`
$id = filter_var($_GET['id'], FILTER_VALIDATE_INT);
// Print a detailed dump (with types) of `$id`
var_dump($id);
?>
Login to try C/C++/Java/PHP code in the editor
filter_varके result को एक loose check से test करना, ताकि एक valid0failure जैसा दिखे;falseसे compare करें।- यह उम्मीद करना कि
FILTER_VALIDATE_BOOLEANinvalid input के लिए false return करेगा, जबकि इसेFILTER_NULL_ON_FAILUREचाहिए। - एक sanitize filter इस्तेमाल करना जब एक validate filter की ज़रूरत हो।
Chapter Quiz — Complete all 8 topics to unlock
0/8 topics done
Complete these topics first: