HTML標(biāo)簽相關(guān)的字符串格式化
string nl2br ( string $string )
nl2br() 就是將\n 替換成 <br> //javascript對\n才能夠執(zhí)行換行,對</br>是不能執(zhí)行換行
htmlspecialchars() 把一些預(yù)定義的字符轉(zhuǎn)換為 HTML 實體。
string htmlspecialchars(string,quotestyle,[character-set])
轉(zhuǎn)換以下字符及對應(yīng)的實體
& (和號) 成為 &
" (雙引號) 成為 "
' (單引號) 成為 '
< (小于) 成為 <
> (大于) 成為 >
第二個參數(shù): ENT_COMPAT 只轉(zhuǎn)換雙引號, 保留單引號, 為默認值 compat: 兼容性
ENT_QUOTES 同時轉(zhuǎn)換兩種引號 quotes: 引號
ENT_NOQUOTES 不對引號進行轉(zhuǎn)換
<html>
<body>
<?php
$str = "John & \" 'Adams'";
echo htmlspecialchars($str, ENT_COMPAT);
echo "<br />";
echo htmlspecialchars($str, ENT_QUOTES);
echo "<br />";
echo htmlspecialchars($str, ENT_NOQUOTES);
?>
</body>
</html>
輸出結(jié)果:John & " 'Adams'
John & " 'Adams'
John & " 'Adams'
htmlentities() 可以將所有的非ASCII碼字符轉(zhuǎn)換為對應(yīng)的實體代碼;除字母、數(shù)字、\外, 漢字和鍵盤上其他字符都轉(zhuǎn)換
<?php
$str = "A 'quote' \" is <b>bold</b>" ;
echo htmlentities ( $str ); // 輸出后源代碼: A 'quote' is <b>bold</b>
echo htmlentities ( $str , ENT_QUOTES ); // 輸出后源代碼: A 'quote' is <b>bold</b>
?>
返回的結(jié)果:A 'quote' "is <b>bold</b>
A 'quote' "is <b>bold</b>
注意: htmlspecialchars()和htmlentities作用直接輸出HTML腳本
htmlspecialchars()和htmlentities()函數(shù)對于轉(zhuǎn)義字符"\"處理,不會轉(zhuǎn)義實體代碼,要么當(dāng)轉(zhuǎn)義字符對待,要么原樣輸出;
PHP中htmlentities和htmlspecialchars的區(qū)別
這兩個函數(shù)的功能都是轉(zhuǎn)換字符為HTML字符編碼, 特別是url和代碼字符串。防止字符標(biāo)記被瀏覽器執(zhí)行。
使用中文時沒什么區(qū)別, 但htmlentities會格式化中文字符使得中文輸入是亂碼。
htmlentities轉(zhuǎn)換所有的html標(biāo)記, htmlspecialchars只格式化& ' " < 和 > 這幾個特殊符號
addslashes() 在指定的預(yù)定義字符前添加反斜杠。
這些預(yù)定義字符是:單引號 (') 雙引號 (") 反斜杠 (\) NULL字符(\x00)
提示:該函數(shù)可用于為存儲在數(shù)據(jù)庫中的字符串以及數(shù)據(jù)庫查詢語句準(zhǔn)備合適的字符串。
注釋:默認情況下,PHP 指令 magic_quotes_gpc 為 on,對所有的 GET、POST 和 COOKIE數(shù)據(jù)自動運行 addslashes()。
不要對已經(jīng)被magic_quotes_gpc轉(zhuǎn)義過的字符串使用 addslashes(),因為這樣會導(dǎo)致雙層轉(zhuǎn)義。
遇到這種情況時可以使用函數(shù) get_magic_quotes_gpc() 進行檢測。(如:$c=(!get_magic_quotes_gpc())?addslashes($c):$c;)
在本例中,我們要向字符串中的預(yù)定義字符添加反斜杠:
<?php
$str = "Who's John Adams?";
echo $str . " This is not safe in a database query.<br />";
echo addslashes($str) . " This is safe in a database query.";
?>
輸出:
Who's John Adams? This is not safe in a database query.
Who\'s John Adams? This is safe in a database query.
<?php
header("Content-type:text/html; charset=utf-8");
$str = "wo are \x0a studying \x00 php";
echo $str;
echo "<br>";
echo addslashes($str);
?>
輸出:
wo are studying php
wo are studying >wo are studying \0 php< php
stripslashes() 刪除反斜線("\")
在提交的表單數(shù)據(jù)中 ' " \ 等字符前被自動加上一個\ ,這是配置文件php.ini中選項magic_quotes_gpc在起作用,
默認是打開的,如果不處理則將數(shù)據(jù)保存到數(shù)據(jù)庫時,有可能會被數(shù)據(jù)庫誤當(dāng)成控制符號而引起錯誤。
通常htmlspecialchars()和stripslashes()函數(shù)復(fù)合的方式,聯(lián)合處理表單中的提交的數(shù)據(jù)htmlspecialchars(stripslashes())
strip_tags()
string strip_tags ( string $str [, string $allowable_tags ] )
剝?nèi)?HTML、XML 以及 PHP 的標(biāo)簽。
<?php
echo strip_tags("Hello <b><i>world!</i></b>","<b>");
?>
輸出結(jié)果:Hello world!
實例:
<?php
$str = "<b>webserver;</b> & \ 'Linux' & Apache";
echo "$str"; //直接輸出
echo "<br/>";
echo htmlspecialchars($str,ENT_COMPAT); //只轉(zhuǎn)換雙引號,為默認參數(shù)
echo "<br />";
echo htmlspecialchars($str,ENT_NOQUOTES); //不對引號進行轉(zhuǎn)換
echo "<br />";
echo htmlspecialchars($str,ENT_QUOTES); //同時轉(zhuǎn)換單引號和雙引號
echo "<br />";
echo htmlentities($str); //將所有的非ASCII碼字符轉(zhuǎn)換為對應(yīng)的實體代碼
echo "<br />";
echo addslashes($str); //將" ' \ 字符前添加反斜線
echo "<br />";
echo stripslashes($str); //刪除反斜線
echo "<br />";
echo strip_tags($str); //刪除<html>標(biāo)記
?>
輸出結(jié)果:
webserver; & \ 'Linux' & Apache
1、html標(biāo)簽是用來給文本添加語義的,而不是用來修飾文本的;
2、<meta charset="GBK">指定字符集(GB2312、UTF-8),html保存和指定字符一樣,才不會亂碼;
3、<!DOCTYPE html> DTD文檔申明告訴瀏覽器我用的什么協(xié)議來寫的,不是html標(biāo)簽;
4、webstorm快捷鍵大全:https://www.cnblogs.com/yeminglong/p/5995421.html
1、h、p 和 hr 標(biāo)簽
2、注釋:<!-- -->
3、圖片:<img src=" ">
4、換行:<br> 用于內(nèi)容未完的換行
5、跳轉(zhuǎn):<a href=" "></a>
6、base 標(biāo)簽:<base target="_self ">
7、假鏈接:點擊不會跳轉(zhuǎn)
8、錨點:<a href="#id值"><\a>
1、無序列表(!)
2、有序列表(*)
3、定義列表
?
1、格式
?
2、屬性
(1)寬高
(2)水平和垂直對齊(align 和 valign)
(3)內(nèi)邊距和外邊距(cellpadding 和 cellspacing)
(4)細線表格
3、表格的其他標(biāo)簽
(1)caption:表格的標(biāo)題標(biāo)簽,必須寫在 table 內(nèi)而且需緊跟 table
(2)th:th 和 td 同級,th 有加粗的效果
4、表格的結(jié)構(gòu)
(1)組成:caption 標(biāo)題、thead 表頭、tbody 主體、tfoot 尾部
(2)說明:
5、單元格的合并
(1)水平方向:td 屬性 colspan = "2";
(2)垂直方向:td 屬性 rowspan = "2";
1、格式
?
2、input 標(biāo)簽
(1)type = text:
(2)password:
(3)radio:互斥要設(shè)置 name 相同;默認選中 checked
(4)checkbox:選中 checked
(5)button:
(6)image:
(7)reset:value 修改標(biāo)題
(8)submit:
(9)hidden:
-----------------------------------------------------------------------------------------------------------------------
*相關(guān)標(biāo)簽:
?
3、非 input 標(biāo)簽
(1)select
?
(2)textarea
4、練習(xí)
(1)表單標(biāo)簽除了 button 外都可以用 value 來指定提交的值
(2)表單添加邊框可以在 form 中添加 fieldset 來實現(xiàn)
1、video 標(biāo)簽
(1)格式:<video src=" " autoplay="autoplay"></video>;
(2)屬性:controls(控制條)poster(海報)loop(循環(huán))preload(預(yù)加載,與autoplay沖突)muted(靜音)width/height;
(3)另一種 video 格式:解決瀏覽器的兼容
?
(4)讓所有的瀏覽器支持 video 標(biāo)簽:通過 js 框架來實現(xiàn)
2、audio 標(biāo)簽
(1)使用基本和 video 一樣,屬性只有寬高和 poster 不能用,也是兩種格式
3、details 和 summary 標(biāo)簽
(1)格式:
?
4、marquee標(biāo)簽(跑馬燈效果)
(1)w3c 不推薦,但是瀏覽器的支持好
(2)屬性:direction(方向)scrollamount(滾動的速度)loop(滾動次數(shù),默認-1)behavior(滾動類型 slide)
(3)廢棄的標(biāo)簽:<br><hr><font><b>加粗<u>下劃線<i>斜體<s>刪除線(無語義)
替代的標(biāo)簽:<strong><ins><em><del>(加入了語義)
5、字符實體
(1) ;空格 <;>; ©;版權(quán)符號
(2)理解:html 占用了的不顯示的特殊字符用另外的代替符號表示,使他們正常在 html 頁面上顯示
HTML 中,正確的字符編碼是什么?
HTML5 中默認的字符編碼是 UTF-8。
這并非總是如此。早期網(wǎng)絡(luò)的字符編碼是 ASCII 碼。
后來,從 HTML 2.0 到 HTML 4.01,ISO-8859-1 被認定為標(biāo)準(zhǔn)。
隨著 XML 和 HTML5 的出現(xiàn),UTF-8 也終于到來了,解決了大量的字符編碼問題。
下面是關(guān)于字符編碼標(biāo)準(zhǔn)的簡短概述。
在開始的時候:ASCII
計算機信息(數(shù)字、文字、圖片)在電子中是以二進制 1 和 0(01000101)進行存儲的。
為了規(guī)范字母數(shù)字字符的存儲,創(chuàng)建了 ASCII(全稱 American Standard Code for Information Interchange)。它為每個存儲字符定義了一個獨特的二元 7 位數(shù)字,支持 0-9 數(shù)字,大/小寫英文字母(a-z、A-Z)和一些特殊的字符,比如 ! $ + - ( ) @ < > 。
由于 ASCII 使用一個字節(jié)(7 位表示字符,1 位表示傳輸奇偶控制),所以它只能表示 128 個不同的字符。這些字符中有 32 個被保留作為其他控制目的使用。
ASCII 的最大的缺點是,它排除了非英文字母。
ASCII 今天仍然在廣泛使用,尤其是在大型計算機系統(tǒng)中。
如需深入了解 ASCII,請查看完整的 ASCII 參考手冊。
在 Windows 中:ANSI
ANSI(也稱為 Windows-1252),是 Windows 95 及其之前的 Windows 系統(tǒng)中默認的字符集。
ANSI 是 ASCII 的擴展,它加入了國際字符。它使用一個完整的字節(jié)(8 位)來表示 256 個不同字符。
自從 ANSI 成為 Windows 中默認的字符集,所有的瀏覽器都支持 ANSI。
如需深入了解 ANSI,請查看完整的 ANSI 參考手冊。
在 HTML 4 中:ISO-8859-1
由于大多數(shù)國家使用 ASCII 以外的字符,在 HTML 2.0 標(biāo)準(zhǔn)中,默認的字符編碼更改為 ISO-8859-1。
ISO-8859-1 是 ASCII 的擴展,它加入了國際字符。與 ANSI 一樣,它使用一個完整的字節(jié)(8 位)來表示 256 個不同字符。
如果 HTML 4 網(wǎng)頁使用了不同于 ISO-8859-1 的字符集,則需要在 <meta> 標(biāo)簽中指定,如下所示:
實例
<metahttp-equiv="Content-Type"content="text/html;charset=ISO-8859-8">
如需深入了解 ISO-8859-1,請查看完整的 ISO-8859-1 參考手冊。
在 HTML5 中:Unicode(UTF-8)
由于以上所列的字符集是有限的,在多語言環(huán)境中是不兼容的,所以 Unicode 聯(lián)盟(Unicode Consortium)開發(fā)了 Unicode 標(biāo)準(zhǔn)(Unicode Standard)。
Unicode 標(biāo)準(zhǔn)覆蓋了(幾乎)所有的字符、標(biāo)點符號和符號。
Unicode 使文本的處理、存儲和運輸,獨立于平臺和語言。
HTML5 中默認的字符編碼是 UTF-8。
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
當(dāng)瀏覽器在網(wǎng)頁中檢測到 ISO-8859-1 時,通常默認為 ANSI,因為除了 ANSI 有 32 個額外的字符這一點,其他方面 ANSI 基本等同于 ISO-8859-1。
HTML5 中默認的字符集是 UTF-8。
所有的 HTML 4 處理器都支持 UTF-8,所有的 HTML5 和 XML 處理器都支持 UTF-8 和 UTF-16。
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。