當前位置:
首頁 > 最新 > 盤點:PHP常用的HTML標籤相關的字元串格式化函數,你知道幾個?

盤點:PHP常用的HTML標籤相關的字元串格式化函數,你知道幾個?

為什麼要將HTML標籤相關的字元串格式化?

HTML中的表單是收集用戶數據提交給伺服器的主要途徑,如果處理不會被黑客利用成為攻擊伺服器的入口。例如在用戶發布文章時,文章如果包括HTML標記或者JavaScript頁面轉向的代碼,如果直接輸出的話會使頁面布局發生改變。這些代碼不做處理會被瀏覽器理解成有效代碼去解釋。所以在php中,對用戶提交的數據內容一定要先處理。我們可以用PHP中HTML相關的字元串格式化函數,有效控制HTML文本輸出。

函數nl2br()

在瀏覽器中輸出的字元串只能通過HTML的「

」標記換行,也有很多人習慣使用「
」作為換行符號,但是瀏覽器並不識別這個字元串換行符。即使有多行文本,在瀏覽器中顯示只有一行。nl2br()函數就是在字元串的每個新行「
」之前插入HTML換行符「

」。比如:echo nl2br("first line,
second line");。

函數htmlspecialchars()

如果不希望瀏覽器直接解析HTML標記,需要把HTML標記中的特殊字元轉換成HTML實體。例如,將"」裝換為「>」。這樣HTML標記瀏覽器就不會去解析,而是將HTML文本在瀏覽器中原樣輸出。php中提供的htmlspecialchars()函數就可以將一些預定義的字元轉換為HTML實體。此函數用在預防使用者提供的文字中包含了HTML的標記,像是布告欄或是訪客留言板這方面的應用。它可以轉換的字元:

「&」(和號)轉換為「&;」。

「「」(雙引號)轉換為「";」。

「『』」(單引號)換為「";」。

">"(大於號)轉換為「>」。

函數htmlspecialchars()有三個參數,第一個參數是必選函數。第二個參數是可選參數,用來決定引號的轉換方式。(ENT_COMPAT轉換雙引號,保留單引號;ENT_QUOTES同時轉換兩種引號;ENT_NOQUOTES不對引號轉換。)第三個參數是可選的值,用於指定處理的字元串的字符集,默認的字符集是「ISO8859-1」.其他的可以使用的合法字符集

htmlentities()函數

htmlentities()函數可以將所有非ASCII碼轉換為對應的實體代碼。htmlentities()函數和htmlspecialchars()函數使用語法格式一致,單該函數可以轉義更多的HTML字元。

strip_tags函數

函數htmlspecialchars()可以將HTML中的標記符號轉換為對應的HTML實體,有時可以直接刪除用戶輸入的HTML標籤,也是很有必要的。PHP提供的strip_tags函數默認就是可以刪除字元串中的所有的HTML標籤,也可以有選擇性的刪除一些HTML標記。比如說公告欄或者訪客留言,比如說在論壇發布文章時,可以預留一些可以改變文字大小、顏色、粗體和斜體等HTML標記,而刪除一些對頁面布局有影響的HTML標記。

有一些函數文章中沒有提到,歡迎大家補充。每天學習一個知識點,每日寄語「滴水穿石,不是力量大,而是功夫深。」


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 編程小學生 的精彩文章:

一文讀懂HTML5和HTML4區別!

TAG:編程小學生 |