PHP 過濾器
驗證資料 = 確定資料是否符合正確的形式。
清理資料 = 刪除資料中所有不合法的字元。
PHP 過濾器擴充套件
PHP 過濾器用於驗證和清理外部輸入。
PHP 過濾器擴充套件提供了許多檢查使用者輸入所需的功能,旨在使資料驗證更輕鬆、更快速。
可以使用 filter_list()
函式列出 PHP 過濾器擴充套件提供的功能。
示例
<table>
<tr>
<td>過濾器名稱</td>
<td>過濾器 ID</td>
</tr>
<?php
foreach (filter_list() as $id =>$filter) {
echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
</table>
自己動手試一試 »
為什麼使用過濾器?
許多 Web 應用程式接收外部輸入。外部輸入/資料可以是
- 來自表單的使用者輸入
- Cookie
- Web 服務資料
- 伺服器變數
- 資料庫查詢結果
您應該始終驗證外部資料!
無效提交的資料可能導致安全問題並破壞您的網頁!
透過使用 PHP 過濾器,您可以確保您的應用程式獲得正確的輸入!
PHP filter_var() 函式
filter_var()
函式可以同時驗證和清理資料。
filter_var()
函式使用指定的過濾器來過濾單個變數。它接收兩個資料:
- 要檢查的變數
- 要使用的檢查型別
清理字串
以下示例使用 filter_var()
函式刪除字串中的所有 HTML 標籤。
示例
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
自己動手試一試 »
驗證整數
以下示例使用 filter_var()
函式檢查變數 $int 是否為整數。如果 $int 是整數,則以下程式碼的輸出將是:“Integer is valid”。如果 $int 不是整數,則輸出將是:“Integer is not valid”。
示例
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
自己動手試一試 »
提示:filter_var() 和 0 的問題
在上面的示例中,如果 $int 設定為 0,則上述函式將返回“Integer is not valid”。要解決此問題,請使用以下程式碼:
示例
<?php
$int = 0;
if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
自己動手試一試 »
驗證 IP 地址
以下示例使用 filter_var()
函式檢查變數 $ip 是否為有效 IP 地址。
示例
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
echo("$ip is a valid IP address");
} else {
echo("$ip is not a valid IP address");
}
?>
自己動手試一試 »
清理和驗證電子郵件地址
以下示例使用 filter_var()
函式首先刪除 $email 變數中的所有非法字元,然後檢查它是否為有效電子郵件地址。
示例
<?php
$email = "john.doe@example.com";
// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
?>
自己動手試一試 »
清理和驗證 URL
以下示例使用 filter_var()
函式首先刪除 URL 中的所有非法字元,然後檢查 $url 是否為有效 URL。
示例
<?php
$url = "https://w3schools.tw";
// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url is a valid URL");
} else {
echo("$url is not a valid URL");
}
?>
自己動手試一試 »
完整的 PHP 過濾器參考
有關所有過濾器函式的完整參考,請訪問我們的完整 PHP 過濾器參考。 檢查每個過濾器以瞭解可用的選項和標誌。
參考文件包含每個函式的簡要說明和使用示例!