PHP htmlspecialchars()ฟังก์ชัน
ตัวอย่าง
แปลงอักขระที่กำหนดไว้ล่วงหน้า "<" (น้อยกว่า) และ ">" (มากกว่า) เป็นเอนทิตี HTML:
<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>
เอาต์พุต HTML ของโค้ดด้านบนจะเป็น (View Source):
<!DOCTYPE html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>
ผลลัพธ์ของเบราว์เซอร์ของโค้ดด้านบนจะเป็น:
This is some <b>bold</b> text.
ความหมายและการใช้งาน
ฟังก์ชัน htmlspecialchars() จะแปลงอักขระที่กำหนดไว้ล่วงหน้าบางตัวให้เป็นเอนทิตี HTML
อักขระที่กำหนดไว้ล่วงหน้าคือ:
- & (เครื่องหมายและ) กลายเป็น &
- " (เครื่องหมายคำพูดคู่) กลายเป็น "
- ' (เครื่องหมายคำพูดเดียว) กลายเป็น '
- < (น้อยกว่า) กลายเป็น <
- > (มากกว่า) กลายเป็น >
เคล็ดลับ:ในการแปลงเอนทิตี HTML พิเศษกลับเป็นอักขระ ให้ใช้ฟังก์ชันhtmlspecialchars_decode()
ไวยากรณ์
htmlspecialchars(string,flags,character-set,double_encode)
ค่าพารามิเตอร์
Parameter | Description |
---|---|
string | Required. Specifies the string to convert |
flags | Optional. Specifies how to handle quotes, invalid encoding and the used document type. The available quote styles are:
Invalid encoding:
Additional flags for specifying the used doctype:
|
character-set | Optional. A string that specifies which character-set to use. Allowed values are:
Note: Unrecognized character-sets will be ignored and replaced by ISO-8859-1 in versions prior to PHP 5.4. As of PHP 5.4, it will be ignored an replaced by UTF-8. |
double_encode | Optional. A boolean value that specifies whether to encode existing html entities or not.
|
รายละเอียดทางเทคนิค
คืนมูลค่า: | ส่งกลับสตริงที่แปลง แล้ว หากสตริงมีการเข้ารหัสที่ไม่ถูกต้อง สตริงจะส่งคืนสตริงว่าง เว้นแต่จะตั้งค่าสถานะ ENT_IGNORE หรือ ENT_SUBSTITUTE |
---|---|
รุ่น PHP: | 4+ |
บันทึกการเปลี่ยนแปลง: | PHP 5.6 - เปลี่ยนค่าเริ่มต้นสำหรับ พารามิเตอร์ ชุดอักขระ
เป็นค่าของชุดอักขระเริ่มต้น (ในการกำหนดค่า) PHP 5.4 - เปลี่ยนค่าเริ่มต้นสำหรับ พารามิเตอร์ ชุดอักขระเป็น UTF-8 PHP 5.4 - เพิ่ม ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 และ ENT_XHTML PHP 5.3 - เพิ่มค่าคงที่ ENT_IGNORE PHP 5.2.3 - เพิ่มพารามิเตอร์double_encode PHP 4.1 - เพิ่ม พารามิเตอร์ชุดอักขระ |
ตัวอย่างเพิ่มเติม
ตัวอย่าง
แปลงอักขระที่กำหนดไว้ล่วงหน้าเป็นเอนทิตี HTML:
<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>
เอาต์พุต HTML ของโค้ดด้านบนจะเป็น (View Source):
<!DOCTYPE html>
<html>
<body>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'
</body>
</html>
ผลลัพธ์ของเบราว์เซอร์ของโค้ดด้านบนจะเป็น:
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
ตัวอย่าง
แปลงเครื่องหมายคำพูดคู่เป็นเอนทิตี HTML:
<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>
เอาต์พุต HTML ของโค้ดด้านบนจะเป็น (View Source):
<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>
ผลลัพธ์ของเบราว์เซอร์ของโค้ดด้านบนจะเป็น:
I love "PHP".
❮ การอ้างอิงสตริง PHP