ฟังก์ชัน PHP htmlspecialchars()
ตัวอย่าง
แปลงตัวอักษรที่เป็นรายชื่อมาตรฐาน "<" (น้อยกว่า) และ ">" (มากกว่า) กลับเป็นตัวนิสัย HTML
<?php $str = "This is some <b>bold</b> text."; echo htmlspecialchars($str); ?>
การออกแบบของโค้ดดังกล่าวใน HTML ดังนี้ (ดูรหัสที่มา):
<!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)
ตัวแปร | รายละเอียด |
---|---|
string | สำคัญ กำหนดตัวถามที่ต้องการเปลี่ยนแปลง |
flags |
เลือกตั้ง กำหนดวิธีการจัดการอักษรอิสระ รหัสการเข้ารหัสที่ผิดปกติ และประเภทเอกสารที่ใช้งาน ปริมาณที่สามารถใช้งานได้:
รหัสการเข้ารหัสที่ผิดปกติ:
规定使用的文档类型的附加 flags:
|
character-set |
ENT_XHTML - จะจัดการรหัสเป็น XHTML ตัวเลือก ศัพท์ที่กำหนดระบบการเข้ารหัสที่ใช้
MacRoman - ตัวเขาตัวละครที่ใช้โดยระบบ Mac OSหมายเหตุ: |
double_encode |
ตัวเลือก ค่าที่เป็นระบบการเข้ารหัส กำหนดว่าจะเข้ารหัส HTML entity ที่มีอยู่แล้วหรือไม่
|
รายละเอียดเทคนิค
ค่าที่กลับค่ามา: |
กลับค่าของศัพท์ที่ถูกแปลง ถ้า string หากมีรหัสเข้ารหัสที่ไม่ถูกต้อง จะกลับค่าของเดิมเป็นศัพท์ว่าง ตามที่ได้ตั้งค่า ENT_IGNORE หรือ ENT_SUBSTITUTE หรือไม่ |
PHP รุ่น: | 4+ |
บันทึกการปรับปรุง: |
ใน PHP 5 ระหว่างcharacter-set ค่าปริยายของพารามิเตอร์เปลี่ยนเป็น 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 ได้มีการเพิ่ม character-set ตัวเลือก |
ตัวอย่างเพิ่มเติม
ตัวอย่าง 1
การแปลงอักษรวรรษฐ์ปกติเป็น HTML entity:
<?php $str = "Bill & 'Steve'"; echo htmlspecialchars($str, ENT_COMPAT); // การแปลงอักษรวรรษฐ์ในวงล้อมนำ echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES); // การแปลงอักษรวรรษฐ์ในวงล้อมนำ echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); // ไม่มีการแปลงอักษรวรรษฐ์ในวงล้อมนำ ?>
การออกแบบของโค้ดดังกล่าวใน HTML ดังนี้ (ดูรหัสที่มา):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Steve'<br> Bill & 'Steve' </body> </html>
การออกแบบของโค้ดดังกล่าวในเบราเซอร์ดังนี้:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
ตัวอย่าง 2
การแปลงอักษรวรรษฐ์ในวงล้อมนำเป็น HTML entity:
<?php $str = 'I love "PHP".'; echo htmlspecialchars($str, ENT_QUOTES); // การแปลงอักษรวรรษฐ์ในวงล้อมนำ ?>
การออกแบบของโค้ดดังกล่าวใน HTML ดังนี้ (ดูรหัสที่มา):
<!DOCTYPE html> <html> <body> I love "PHP" </body> </html>
การออกแบบของโค้ดดังกล่าวในเบราเซอร์ดังนี้:
I love "PHP".