Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
這些標記用于將頁面分成多個部分。熟練地掌握這些標記將意味著構建出具有良好的結構和布局的頁面,使其更加友好和易于閱讀。
div標記定義了HTML文件中的一個部分或分區。它通常包含需要組合在一起的標題、段落、表格或其他元素。通過設置<div class="">與css一起使用來設置網頁某個部分的顯示。
p標記用來定義文本的段落,就像你在書中看到的那樣,一旦文本達到屏幕邊緣就會自動折到下一行。當另一個<p>標記用于開始下一個段落時,瀏覽器將在段落之間添加一些空白。p標記具有以下屬性:
span標記用于將內聯元素組合在一起,例如句子中的幾個單詞,以便僅對這些單詞應用css樣式。span標記可以在div和p標記中使用,因為它不會創建新的塊。
br標記相當于一個回車符,用于在新行開始文本。一行中的多個<br>標記將在網頁上創建一個很大的垂直空間。
hr標記通常被稱為HTML行分隔符標記,創建一條通常用于視覺上分隔頁面的水平線。它具有以下屬性:
出于某種原因,你希望文本在一條直線上繼續,而不是在屏幕的邊緣換行,可以使用nobr。注意:這將迫使用戶向右滾動以查看行的其余部分,這是一種糟糕的設計。
下面是以上標記的示例:
瀏覽器顯示內容如下所示:
HTML標簽相關的字符串格式化
string nl2br ( string $string )
nl2br() 就是將\n 替換成 <br> //javascript對\n才能夠執行換行,對</br>是不能執行換行
htmlspecialchars() 把一些預定義的字符轉換為 HTML 實體。
string htmlspecialchars(string,quotestyle,[character-set])
轉換以下字符及對應的實體
& (和號) 成為 &
" (雙引號) 成為 "
' (單引號) 成為 '
< (小于) 成為 <
> (大于) 成為 >
第二個參數: ENT_COMPAT 只轉換雙引號, 保留單引號, 為默認值 compat: 兼容性
ENT_QUOTES 同時轉換兩種引號 quotes: 引號
ENT_NOQUOTES 不對引號進行轉換
<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>
輸出結果:John & " 'Adams'
John & " 'Adams'
John & " 'Adams'
htmlentities() 可以將所有的非ASCII碼字符轉換為對應的實體代碼;除字母、數字、\外, 漢字和鍵盤上其他字符都轉換
<?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>
?>
返回的結果:A 'quote' "is <b>bold</b>
A 'quote' "is <b>bold</b>
注意: htmlspecialchars()和htmlentities作用直接輸出HTML腳本
htmlspecialchars()和htmlentities()函數對于轉義字符"\"處理,不會轉義實體代碼,要么當轉義字符對待,要么原樣輸出;
PHP中htmlentities和htmlspecialchars的區別
這兩個函數的功能都是轉換字符為HTML字符編碼, 特別是url和代碼字符串。防止字符標記被瀏覽器執行。
使用中文時沒什么區別, 但htmlentities會格式化中文字符使得中文輸入是亂碼。
htmlentities轉換所有的html標記, htmlspecialchars只格式化& ' " < 和 > 這幾個特殊符號
addslashes() 在指定的預定義字符前添加反斜杠。
這些預定義字符是:單引號 (') 雙引號 (") 反斜杠 (\) NULL字符(\x00)
提示:該函數可用于為存儲在數據庫中的字符串以及數據庫查詢語句準備合適的字符串。
注釋:默認情況下,PHP 指令 magic_quotes_gpc 為 on,對所有的 GET、POST 和 COOKIE數據自動運行 addslashes()。
不要對已經被magic_quotes_gpc轉義過的字符串使用 addslashes(),因為這樣會導致雙層轉義。
遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。(如:$c=(!get_magic_quotes_gpc())?addslashes($c):$c;)
在本例中,我們要向字符串中的預定義字符添加反斜杠:
<?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() 刪除反斜線("\")
在提交的表單數據中 ' " \ 等字符前被自動加上一個\ ,這是配置文件php.ini中選項magic_quotes_gpc在起作用,
默認是打開的,如果不處理則將數據保存到數據庫時,有可能會被數據庫誤當成控制符號而引起錯誤。
通常htmlspecialchars()和stripslashes()函數復合的方式,聯合處理表單中的提交的數據htmlspecialchars(stripslashes())
strip_tags()
string strip_tags ( string $str [, string $allowable_tags ] )
剝去 HTML、XML 以及 PHP 的標簽。
<?php
echo strip_tags("Hello <b><i>world!</i></b>","<b>");
?>
輸出結果:Hello world!
實例:
<?php
$str = "<b>webserver;</b> & \ 'Linux' & Apache";
echo "$str"; //直接輸出
echo "<br/>";
echo htmlspecialchars($str,ENT_COMPAT); //只轉換雙引號,為默認參數
echo "<br />";
echo htmlspecialchars($str,ENT_NOQUOTES); //不對引號進行轉換
echo "<br />";
echo htmlspecialchars($str,ENT_QUOTES); //同時轉換單引號和雙引號
echo "<br />";
echo htmlentities($str); //將所有的非ASCII碼字符轉換為對應的實體代碼
echo "<br />";
echo addslashes($str); //將" ' \ 字符前添加反斜線
echo "<br />";
echo stripslashes($str); //刪除反斜線
echo "<br />";
echo strip_tags($str); //刪除<html>標記
?>
輸出結果:
webserver; & \ 'Linux' & Apache
格式化
>格式化標記通常只能是產生幾種不同文本的樣式,但在語義上它們各自有著自己的特點
>如果你只是想有著一些自己的文本樣式,可以嘗試使用“常用html標記”里格式化的內容或css樣式表
>但是這樣會對搜索引擎不友好
>所以我們強調使用語義化標簽,提供給瀏覽器的語義信息越多,瀏覽器就可以越好地把這些信息展示給用戶。
## `<abbr></abbr>`
作用:用于指示該標簽內的內容是一個縮寫
注意點:
1. 常與全局屬性title配合使用,這樣可以在鼠標移動到該處時顯示全稱
`The <abbr title="People's Republic of China">PRC</abbr> was founded in 1949.`
2. 在瀏覽器內渲染會使其在內容底部加上短虛線
## `<address></address>`
作用:用于定義文檔或文章作者/擁有者的聯系信息
>如果 `<address>` 元素位于 `<body>` 元素內,則它表示文檔聯系信息。
>如果 `<address>` 元素位于 `<article>` 元素內,則是它表示文章的聯系信息。
注意點:
1. address元素中的文本通常呈現為斜體,大多數瀏覽器會在address元素前后換行
2. address元素不應該用于描述通訊地址,除非它是練習信息的一部分
3. address元素元素通常連同其他信息被包含在footer元素中
```
<address>
Written by <a href="mailto:webmaster@example.com">Donald Duck</a>.<br>
Visit us at:<br>
Example.com<br>
Box 564, Disneyland<br>
USA
</address>
```
## `<b></b>`
作用:定義粗體文本
## `<bdi></bdi>`
作用:定義文本的文本方向,使其脫離周圍文本的方向設置
注意點:
1. bdi指的是bidi隔離
2. 在發布用戶評論或其它難以控制的內容時,可以使用
3. 需要與全局屬性dir配合使用
## `<bdo></bdo>`
作用:定義文字方向
注意點:
1. 請與全局屬性dir配合使用
```
<p>
如果您的瀏覽器支持 bi-directional override (bdo),下一行會從右向左輸出 (rtl);
</p>
<bdo dir="rtl">
Here is some Hebrew text
</bdo>
```
## `<blockquote></blockquote>`
作用:`<blockquote>`標簽用于定義塊引用
注意點:
1. 標簽內的所有文本都會從常規文本中分離出來,一般會上下換行,左右增加外邊距,有時也會使用斜體
2. 換而言之,塊引用擁有它們自己的空間
3. 可選屬性:
`cite=url`規定引用來源
```
<blockquote cite="http://www.wwf.org">
WWF's ultimate goal is to build a future where people live in harmony with nature.
</blockquote>
```
主流瀏覽器均不支持cite屬性,但是搜索引擎可以因此獲得更多的信息
## `<q></q>`
作用:用于定義短引用
注意點:
1. 瀏覽器經常在引用內容的人左右添加引號
2. `<q>` 與 `<blockquote>` 的區別:
- `<q>` 標簽在本質上與 `<blockquote>` 是一樣的。不同之處在于它們的顯示和應用。`<q>` 標簽用于簡短的行內引用。如果需要從周圍內容分離出來比較長的部分(通常顯示為縮進地塊),請使用 `<blockquote>` 標簽。
3. 在html4中,firefox和opera中q元素包含的文本必須以引號來開始和結束,但是IE卻不支持這個規定,如果我們為了滿足其它瀏覽器而添加了引號,那么在IE中就會顯示兩組引號。
4. 盡管如此,我們還是推薦使用q元素,因為它在文檔處理和信息提取方面將會有很強的效果
5. 可選屬性:
`cite=citation`定義引用的出處或來源(citation)
## `<cite></cite>`
作用:表示所含文本是對某個參考文獻的引用
注意點:
1. 在顯示上與blockquote元素類似,均是斜體
2. 但是它不會有上下左右的外邊距
3. 通常情況下還要把引用包裹在一對`<a></a>`標簽中,然后把超鏈接指向引用
`<cite><a href=URL>引用名</a></cite>`
>`<cite>` 標簽還有一個隱藏的功能:它可以使你或者其他人從文檔中自動摘錄參考書目。我們可以很容易地想象一個瀏覽器,它能夠自動整理引用表格,并把它們作為腳注或者獨立的文檔來顯示。`<cite>` 標簽的語義已經遠遠超過了改變它所包含的文本外觀的作用;它使瀏覽器能夠以各種實用的方式來向用戶表達文檔的內容。
## `<code></code>`
作用:定義計算機代碼文本
注意點:
1. code元素并不能將元素內的內容以原樣顯示,瀏覽器仍然會解析內容而不跳過
2. code只是給內容的字體改為等寬字體,即它只是將內容轉變為暗示這是計算機代碼的內容
## `<var></var>`
作用:`<var>` 標簽表示變量的名稱,或者由用戶提供的值。
注意點:
1. 用 `<var>` 標簽標記的文本通常顯示為斜體。
2. `<var>` 標簽是計算機文檔中應用的另一個小竅門,這個標簽經常與 `<code>` 和 `<pre>` 標簽一起使用,用來顯示計算機編程代碼范例及類似方面的特定元素。
## `<smap></smap>`
作用:用于從一段上下文中抽取一些字符
例子:
`字符序列 <samp>ae</samp> 可能會被轉換為 æ 連字字符。`
效果:
`字符序列 ae 可能會被轉換為 ? 連字字符。`
## `<ins></ins>`
作用:定義一個插入文本
注意點:
1. 顯示效果是加入下劃線
## `<dfn></dfn>`
作用:用于標記特殊術語或短語
注意點:
1. 瀏覽器通常會將dfn元素內的內容顯示為斜體
2. 應當盡量少的使用,比如在技術性的文檔中,在第一次提到一個術語時,可以加上dfn元素,而在相同文檔的后續中,對于同一個術語,應避免使用dfn
## `<em></em>`
作用:定義一個強調文本
注意點:
1. 在顯示結果上,它依然是斜體
2. 如果你只是為了定義一個斜體的內容,可以考慮使用`<i></i>`或css樣式表
3. 對于強調的內容應當不宜過多,否則無法突出想要表達的內容
## `<strong></strong>`
作用:定義一個語氣更加強烈地強調文本
注意點:
1. 常識告訴我們應較少使用em元素的話,那么strong元素出現的次數應該更少,限制其使用可以讓這個標記更加的引人注意和有效
## `<i></i>`
作用:定義一個斜體文本或傾斜的文本
## `<kbd></kbd>`
作用:定義鍵盤文本
注意點:
1. 顯示效果為等寬字體
## `<mark></mark>`(HTML5)
作用:定義帶有記號的文本
注意點:
1. 與加粗不同,它會將文字加上背景色
## `<meter></meter>`(HTML5)
作用:定義已知范圍或分數值內的標量測量,也被稱為gauge(尺度)
注意點:
1. 這是一個html5的新標簽,假如你把文檔類型聲明為html4或以下和xhtml,標簽本身的效果將會受到影響
2. `<meter>`標簽不應用于指示進度條的進度,如果標記進度,請使用`<progress></progress>`標簽
可用屬性:
1. form=form_id-->規定meter元素所屬的一個或多個表單
2. high=number-->規定被視作高的值的范圍
3. low=number-->規定被視作高的值的范圍
4. max=number-->規定范圍的最大值
5. min=number-->規定范圍的最小值
6. optimum=number-->規定度量的優化值
7. value=number-->必須。規定度量的當前值
```
<meter value="3" min="0" max="10">十分之三</meter>
<meter value="0.6">60%</meter>
```
## `<progress></progress>`(HTML5)
作用:標示任務的進度(進程)
`<progress value="22" max="100"></progress> `
注意點:
1. 需要與js結合使用,來顯示任務的進度
2. progress標簽不適合使用來表示度量衡,這種情況請使用meter元素來替代
可用屬性:
max=number-->規定任務一共需要多少工作
value=number-->規定任務已經完成多少工作
## `<pre></pre>`
作用:用于定義預格式化的文本,即通常會保留空格和換行,文本會呈現為等寬字體
注意點:
1. pre元素常用于表示計算機的源代碼,但是計算機的源代碼(html)直接放入瀏覽器仍會解析(需要使用`<`和`>`等符號實體)
2. 會導致內容截斷的標簽絕不能包含在pre元素中,如標題、p元素、address元素
3. 可選的屬性:
`width=number`定義每行的最大字符數
## `<ruby></ruby>`
作用:可用于定義一個ruby注釋(中文注音或字符)
注意點:
1. ruby元素與rt元素一同使用
2. ruby元素由需要一組字符和一個提供信息的rt元素組成
3. 還包括一個可選的rp元素,定義瀏覽器不支持ruby元素時顯示的內容
## `<rt></rt>`
作用:定義字符的解釋或發音
## `<rp></rp>`
作用:定義瀏覽器不支持ruby元素時顯示的內容
## `<s></s>`
作用:定義加刪除線的文本
注意點:
1. `<s>`標簽是`<strike>`標簽的縮寫版本,但html4和xhtml中已經不再贊成使用它了,就是說,它早晚有一天會消失
2. 請使用`<del></del>`替代它
## `<del></del>`
作用:給元素中的內容上加上刪除線
注意點:
1. 請與`<ins></ins>`標簽配合使用,來描述文檔中的更新與修正
2. 可選的屬性:
- cite=URL
- datetime=YYYMMDD (定義文本被刪除的日期和時間)
## `<small></small>`
作用:標簽內的元素呈現小號字體的效果
注意點:
1. 如果被包裹字體已經是最小號的字體了,那這個標簽將不起任何作用
2. `<small></small>`是可以嵌套的,從而把文字連續的縮小,直到到達最小的一號字
## `<sup></sup>`
作用:標簽中的內容會以當前文本流中字符高度的一般來顯示(上標)
注意點:
1. 雖然顯示效果與文本流中其他元素不一樣,但是它們的字體字號都是一樣的
2. 這個標簽在向文檔添加注腳以及表示方程式中的指數時非常有效,如果與`<a></a>`標簽結合使用可以創建出很好的超鏈接注腳
## `<sub></sub>`
作用:標簽中的內容會以當前文本流中字符高度的一般來顯示(下標)
## `<template></template>`
作用:可以作為一個容器,但是它并不會存在于DOM樹中
注意點:
1. 多用于包裹一段代碼,對其綁定事件,使其可以控制是否隱藏
2. 一個檢查方法:
```
if (document.createElement("template").content) {
document.write("Your browser supports template!");
} else {
document.write("您的瀏覽器不支持 template!");
}
```
## `<u></u>`
作用:定義下劃線文本
注意點:
1. 應盡量避免使用,用戶可能會把它混淆為一個超鏈接
## `<time></time>`(HTML5)
作用:定義一個公歷的時間或日期,時間和時區偏移是可選的
可選的屬性:
1. datetime=datetime-->規定日期/時間。否則由元素內容給定日期時間
2. pubdate=pubdate-->指示 `<time>` 元素中的日期 / 時間是文檔(或 `<article>` 元素)的發布日期。
## `<wbr>`(HTML5)
一段帶有 Word Break Opportunity 的文本:
```
<p>
如果想學習 AJAX,那么您必須熟悉 XML<wbr>Http<wbr>Request 對象。
</p>
```
作用:Word Break Opportunity (`<wbr>`) 規定在文本中的何處適合添加換行符。
注意點:如果單詞太長,或者您擔心瀏覽器會在錯誤的位置換行,那么您可以使用 `<wbr>` 元素來添加 Word Break Opportunity(單詞換行時機)。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。