string strip_tags(string $str)
>),會回傳錯誤fgetss() 功能相同string htmlspecialchars(string $string)
&...;)| 原字元 | 轉換後 |
|---|---|
| & (和) | & |
| " (雙引號) | " |
| < (小於) | < |
| > (大於) | > |
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // 輸出:<a href='test'>Test</a>
?>
情境:資料庫儲存時經過轉義,讀取時需先還原才能正確移除標籤。
// 錯誤做法:直接 strip_tags 無法識別已轉義的標籤 // 正確做法:先 decode 再 strip_tags 再截取 $clean = mb_substr(strip_tags(htmlspecialchars_decode($value['n_info'])), 0, 60);
htmlspecialchars 防 XSShtmlspecialchars_decode → strip_tags 使用mb_substr 避免亂碼htmlspecialchars($str, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8')