很少語言具有過濾功能。過濾器是程式語言的加值功能之一。這有助於我們在處理之前過濾資料或字串。現在需要使用它來防止系統中的某些漏洞問題。 PHP 過濾器可用於驗證或清理外部輸入。 PHP 過濾器是一個擴展,具有我們可以在編碼時使用的各種功能和特性。例如,如果我們將表單中的用戶端輸入為電子郵件 ID,我們應該在與資料庫相關的操作之前對其進行驗證或清理。作為編碼員或開發人員,我們應該根據我們的業務需求和要求在 PHP 中使用這些過濾器。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
清理和過濾是 Web 應用程式環境中最常見的操作。這是基本語法:
filter_var(variable, filter, options)
這個函數filter_var有3個參數。最後 2 個參數、過濾器和選項是可選的。第一個是變數或標識符本身。這是我們想要過濾的,第二個是我們想要做的(在這裡,我們傳遞了 PHP 中可用選項的 ID),最後一個是與過濾器相關的選項。讓我們透過一個測驗範例來理解這一點:
代碼:
<?php $int_val = 200; if(filter_var($int_val, FILTER_VALIDATE_INT)){ echo "The <b>$int_val</b> is a valid one."; // valid } else{ echo "The <b>$int_val</b> not a valid input as an integer"; // invalid } ?>
在上面的範例中,我們使用篩選器並檢查變數 $int_val 中是否有整數值。所以,這是相同的輸出。
輸出:
許多 PHP Web 應用程式從客戶端接收外部輸入。這個想法是在處理之前清理用戶輸入,因為我們不能期望用戶正確輸入所有資料。任何外部使用者或系統輸入或資料都可能導致嚴重的安全問題。
我們可以在此處過濾以清理從各種外部來源輸入的數據,例如:
PHP 過濾器和消毒器一起使我們能夠了解輸入是否有效。如果不是有效的輸入,在這種情況下,我們可以對其進行清理以使其成為有效的輸入。在接下來的範例部分中,我們將討論與此相關的各種範例。
PHP 中有多種類型的過濾器可用。我們可以使用 filter_list() 函數來檢查該列表。這些函數過濾 URL、字串、數字、IP 位址等
在本節中,我們將分別看到各種過濾器範例程式。
清理字串
檢查字串是否有效
代碼:
<?php $comment = "Hello word"; if(filter_var($comment, FILTER_SANITIZE_STRING)){ echo "The <b>$comment</b> is a valid one."; // valid } else{ echo "The <b>$comment</b> not a valid input"; // invalid } ?>
在上面的例子中,我們可以看到一個有效的字串;這就是為什麼它給出有效的。
輸出:
取得經過清理的字串作為輸出
<?php $comment = "<i>Hello word</i>"; echo "Before sanitizing: ". $comment; $comment = filter_var($comment, FILTER_SANITIZE_STRING); echo "<br>"; // for new line echo "After sanitizing: ". $comment; ?>
我們可以看到我們有兩個不同的輸出。我們可以看到消毒前後的輸出是不同的。清理後,HTML 標籤已被 PHP 過濾功能刪除。
輸出:
驗證 IP 位址
PHP濾波函數可以幫我們完成這個工作。讓我們看一下例子。
代碼:
<?php $ip_address = "172.16.254.1:40"; if(filter_var($ip_address, FILTER_VALIDATE_IP)){ echo "The <b>$ip_address</b> is a valid one."; // valid } else{ echo "The <b>$ip_address</b> is not a valid input"; // invalid } ?>
輸出:
清理並驗證電子郵件地址
代碼:
<?php $email_address = "someone@@testmail.com"; code> echo "Before Sanitizing: " . $email_address ."<br>"; if(filter_var($email_address, FILTER_VALIDATE_EMAIL)){ echo "The <b>$email_address</b> is a valid one."; // valid } else{ echo "The <b>$email_address</b> not a valid input"; // invalid } echo "<br>"; echo "After Sanitizing: " . filter_var($email_address, FILTER_SANITIZE_EMAIL); ?>
在上面的範例中,我們有一個無效的電子郵件 ID 值,因為我們透過使用篩選函數來取得此輸出。但當我們清理後,它就會給予正確的電子郵件。
輸出:
代碼:
<?php $email_address = "[email protected]"; if(filter_var($email_address, FILTER_VALIDATE_EMAIL)){ echo "The <b>$email_address</b> is a valid one."; // valid } else{ echo "The <b>$email_address</b> not a valid input"; // invalid } ?>
在上面的 PHP 程式碼範例中,我們檢查電子郵件是否有效。
輸出:
清理並驗證 URL
在此範例中,我們將查看輸入的 URL 是否有效。如果不是有效的 URL,它將對其進行清理以進行更正。
代碼:
<?php $URL = "https://www.educba.com/��courses�"; echo "Before Sanitizing: " . $URL ."<br>"; if(filter_var($URL, FILTER_VALIDATE_URL)){ echo "The <b>$URL</b> is a valid one."; // valid } else{ echo "The <b>$URL</b> is not a valid input"; // invalid } echo "<br>"; echo "After Sanitizing: " . filter_var($URL, FILTER_SANITIZE_URL); ?>
輸出:
我們應該使用 PHP 過濾器來驗證或清理使用者輸入。這樣,我們就可以限制易受攻擊的使用者輸入。我們可以使用各種 PHP 過濾器函數來驗證使用者輸入和值。我們也可以使用清理來清理值(使用者輸入或直接指派的值)。在使用任何 cookie 資料進行資料處理之前,我們應該始終使用 PHP 清理程式。
以上是PHP 過濾器的詳細內容。更多資訊請關注PHP中文網其他相關文章!