ตัวกรอง PHP
ตรวจสอบข้อมูล = ตรวจสอบว่าข้อมูลอยู่ในรูปแบบที่เหมาะสมหรือไม่
ข้อมูลการฆ่าเชื้อ = ลบอักขระที่ผิดกฎหมายออกจากข้อมูล
ส่วนขยายตัวกรอง PHP
ตัวกรอง PHP ใช้เพื่อตรวจสอบและฆ่าเชื้ออินพุตภายนอก
ส่วนขยายตัวกรอง PHP มีฟังก์ชันมากมายที่จำเป็นสำหรับการตรวจสอบการป้อนข้อมูลของผู้ใช้ และได้รับการออกแบบมาเพื่อให้การตรวจสอบความถูกต้องของข้อมูลทำได้ง่ายและรวดเร็วยิ่งขึ้น
ฟังก์ชันfilter_list()
นี้สามารถใช้เพื่อแสดงสิ่งที่ส่วนขยายตัวกรอง PHP นำเสนอ:
ตัวอย่าง
<table>
<tr>
<td>Filter Name</td>
<td>Filter ID</td>
</tr>
<?php
foreach (filter_list() as $id =>$filter) {
echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
</table>
ทำไมต้องใช้ตัวกรอง?
เว็บแอปพลิเคชันจำนวนมากได้รับอินพุตจากภายนอก อินพุต/ข้อมูลภายนอกสามารถ:
- ผู้ใช้ป้อนข้อมูลจาก form
- คุ้กกี้
- ข้อมูลบริการเว็บ
- ตัวแปรเซิร์ฟเวอร์
- ผลการสืบค้นฐานข้อมูล
คุณควรตรวจสอบข้อมูลภายนอกเสมอ!
ข้อมูลที่ส่งไม่ถูกต้องอาจนำไปสู่ปัญหาด้านความปลอดภัยและทำให้หน้าเว็บของคุณเสียหาย!
ด้วยการใช้ตัวกรอง 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 = "[email protected]";
// 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://www.w3schools.com";
// 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 ทั้งหมดของเรา ตรวจสอบตัวกรองแต่ละตัวเพื่อดูว่ามีตัวเลือกและแฟล็กใดบ้าง
ข้อมูลอ้างอิงประกอบด้วยคำอธิบายสั้น ๆ และตัวอย่างการใช้งาน สำหรับแต่ละฟังก์ชัน!