Typography 類別
Typography 類別可以幫忙做文字的格式化
初始化類別
就像大多數在 CI 中的類別一樣,在控制器中初始化 Typography 類別使用 $this->load->library 函數:
$this->load->library('typography');
載入之後,Typography 類別可以這樣使用: $this->typography
auto_typography()
為了語義上的表達與 HTML 排版上的正確性,因此需要做格式化文字的動作,在輸入一個字串後它將回傳以下的格式:
- 將斷落文字以 <p></p> 圍繞(以雙直線來作為段落的區隔)
- 將換行轉換成 <br /> 的標籤,除非在換行前面有出現 <pre> 的標籤
- 區塊層級的元素,例如像是 <div> 標籤,wrap 屬性在段落中不會生效,但如果其中的文字又包含段落,則不受影響
- 在標籤內的雙引號則不會被轉換
- 單引號將原封不動
- 雙破折號(例如: -- )將被轉成 —
- 在文字前後三個連續的點(...)將被轉作省略符號(…)
- 句子後的空白將被轉換成:
範例:
$string = $this->typography->auto_typography($string);
參數
有一個參數可以決定是否將超過二個以上的換行轉換成只有二個,參數值為: TRUE 或 FALSE
預設值為: FALSE
$string = $this->typography->auto_typography($string,FALSE);
注意: 當有大量的內容要格式化時,你可以考慮將網頁做 caching
format_characters()
這個函數與 auto_typography 非常相似,但它只做:
- 在標籤內的雙引號則不會被轉換
- 單引號將原封不動
- 雙破折號(例如: -- )將被轉成 —
- 在文字前後三個連續的點(...)將被轉作省略符號(…)
- 句子後的空白將被轉換成:
範例:
$string = $this->typography->format_characters($string);
nl2br_except_pre()
將換行加上 <br /> 標籤,除非它出現在 <pre> 標籤的裡面,這個函數與 PHP 原生函數 nl2br() 相同,差別在對於 <pre> 的忽略與否
範例:
$string = $this->typography->nl2br_except_pre($string);
protect_braced_quotes
當你在 Template Parser 這個類別中使用 Typography 做格式化時,將 protect_braced_quotes 設定為 TRUE,可防止引號被轉換
範例:
$this->load->library('typography');
$this->typography->protect_braced_quotes = TRUE;