国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

directory search
Array Array Helper Benchmarking Benchmarking Class Caching Caching Driver Calendaring Calendaring Class CAPTCHA CAPTCHA Helper Config Config Class Cookie Cookie Helper Database Connecting to your Database Custom Function Calls Database Caching Class Database Configuration Database Forge Class Database Metadata Database Quick Start: Example Code Database Reference Database Utility Class DB Driver Reference Generating Query Results Queries Query Builder Class Query Helper Methods Transactions Date Date Helper Directory Directory Helper Download Download Helper Email Email Class Email Helper Encrypt Encrypt Class Encryption Encryption Library File File Helper File Uploading File Uploading Class Form Form Helper Form Validation Form Validation FTP FTP Class Functions compatibility_functions common_functions HTML HTML Helper HTML Table HTML Table Class Image Manipulation Image Manipulation Class Inflector Inflector Helper Input Input Class Javascript Javascript Class Language Language Class Language Helper Loader Loader Class Migrations Migrations Class Number Number Helper Output Output Class Pagination Pagination Class Path Path Helper Security Security Class Security Helper Session Session Library Shopping Cart Shopping Cart Class Smiley Smiley Helper String String Helper Template Parser Template Parser Class Text Text Helper Trackback Trackback Class Typography Typography Class Typography Helper Unit Testing Unit Testing Class URI URL User Agent XML XML-RPC and XML-RPC Server Zip Encoding Zip Encoding Class XML-RPC and XML-RPC Server Classes XML Helper User Agent Class URL Helper URI Class
characters

模板解析器類可以對視圖文件中包含的偽變量執(zhí)行簡單的文本替換。它可以解析簡單變量或變量標簽對。

如果您從未使用過模板引擎,則偽變量名稱將被括在大括號中,如下所示:

<html>        
    <head>                
    <title>{blog_title}</title>        
    </head>        
    <body>                
    <h3>{blog_heading}</h3>        
    {blog_entries}                
    <h5>{title}</h5>                
    <p>{body}</p>        
    {/blog_entries}        
    </body>
</html>

這些變量不是實際的PHP變量,而是純文本表示,允許您從模板中刪除PHP(視圖文件)。

注意

CodeIgniter也不會要求你使用這個類,因為用純PHP在您的視圖頁面讓他們跑快一點。但是,有些開發(fā)人員喜歡使用模板引擎,如果他們與設計人員一起工作,他們會覺得使用PHP會遇到一些困惑。

重要

模板解析器類不是完整的模板解析解決方案。為了保持最佳性能,我們一直非常精益求精。

  • 使用模板解析器類

    • 初始化類

    • 解析模板

    • 變量對

    • 使用說明

    • 查看片段

  • 類參考

使用模板解析器類

初始化類

像CodeIgniter中的大多數(shù)其他類一樣,解析器類在您的控制器中使用以下$this->load->library()方法進行初始化:

$this->load->library('parser');

一旦加載,解析器庫對象將可用:$ this-> parser

解析模板

您可以使用該parse()方法來解析(或呈現(xiàn))簡單模板,如下所示:

$data = array(        'blog_title' => 'My Blog Title',        'blog_heading' => 'My Blog Heading');$this->parser->parse('blog_template', $data);

第一個參數(shù)包含視圖文件的名稱(在本例中該文件將被稱為blog_template.php),第二個參數(shù)包含要在模板中替換的數(shù)據(jù)的關聯(lián)數(shù)組。在上例中,模板將包含兩個變量:{blog_title}和{blog_heading}

沒有必要對$ this-> parser-> parse()返回的數(shù)據(jù)進行“回顯”或做些什么。它會自動傳遞給輸出類以發(fā)送到瀏覽器。但是,如果您希望返回數(shù)據(jù)而不是發(fā)送到輸出類,則可以傳遞TRUE(布爾值)作為第三個參數(shù):

$string = $this->parser->parse('blog_template', $data, TRUE);

變量對

上面的示例代碼允許替換簡單的變量。如果你想要重復一整塊變量,每次迭代包含新值,該怎么辦?考慮我們在頁面頂部顯示的模板示例:

<html>        <head>                <title>{blog_title}</title>        </head>        <body>                <h3>{blog_heading}</h3>        {blog_entries}                <h5>{title}</h5>                <p>{body}</p>        {/blog_entries}        </body></html>

在上面的代碼中,您會注意到一對變量:{blog_entries}數(shù)據(jù)... {/ blog_entries}。在這種情況下,這些對之間的整個數(shù)據(jù)塊將重復多次,與參數(shù)數(shù)組的“blog_entries”元素中的行數(shù)相對應。

解析變量對使用上面顯示的相同代碼來解析單個變量,除了您將添加與變量對數(shù)據(jù)相對應的多維數(shù)組。考慮這個例子:

$this->load->library('parser');$data = array(        'blog_title'   => 'My Blog Title',        'blog_heading' => 'My Blog Heading',        'blog_entries' => array(                array('title' => 'Title 1', 'body' => 'Body 1'),                array('title' => 'Title 2', 'body' => 'Body 2'),                array('title' => 'Title 3', 'body' => 'Body 3'),                array('title' => 'Title 4', 'body' => 'Body 4'),                array('title' => 'Title 5', 'body' => 'Body 5')        ));$this->parser->parse('blog_template', $data);

如果您的“對”數(shù)據(jù)來自已經(jīng)是多維數(shù)組的數(shù)據(jù)庫結果,那么您可以簡單地使用數(shù)據(jù)庫result_array()方法:

$query = $this->db->query("SELECT * FROM blog");$this->load->library('parser');$data = array(        'blog_title'   => 'My Blog Title',        'blog_heading' => 'My Blog Heading',        'blog_entries' => $query->result_array());$this->parser->parse('blog_template', $data);

使用說明

如果包含模板中未引用的替代參數(shù),則會忽略它們:

$template = 'Hello, {firstname} {lastname}';
$data = array(        'title' => 'Mr',        'firstname' => 'John',        'lastname' => 'Doe');
$this->parser->parse_string($template, $data);// Result: Hello, John Doe

如果不包含在模板中引用的替換參數(shù),則原始偽變量將顯示在結果中:

$template = 'Hello, {firstname} {initials} {lastname}';
$data = array(        'title' => 'Mr',        'firstname' => 'John',        'lastname' => 'Doe');
$this->parser->parse_string($template, $data);// Result: Hello, John {initials} Doe

如果您希望在數(shù)組期望時提供字符串替換參數(shù),例如,對于變量對,則替換操作將針對打開的變量對標記完成,但閉合變量對標記不能正確呈現(xiàn):

$template = 'Hello, {firstname} {lastname} ({degrees}{degree} {/degrees})';
$data = array(        'degrees' => 'Mr',        'firstname' => 'John',        'lastname' => 'Doe',        'titles' => array(                array('degree' => 'BSc'),                array('degree' => 'PhD')        ));$this->parser->parse_string($template, $data);// Result: Hello, John Doe (Mr{degree} {/degrees})

如果您將您的一個替代參數(shù)命名為與變量對內使用的替代參數(shù)相同,則結果可能與預期不符:

$template = 'Hello, {firstname} {lastname} ({degrees}{degree} {/degrees})';
$data = array(        'degree' => 'Mr',        'firstname' => 'John',        'lastname' => 'Doe',        'degrees' => array(                array('degree' => 'BSc'),                array('degree' => 'PhD')        ));$this->parser->parse_string($template, $data);// Result: Hello, John Doe (Mr Mr )

查看片段

您不必使用變量對來獲得視圖中迭代的效果。可以在變量對內使用視圖片段,并在控制器中而不是在視圖中控制迭代。

在視圖中控制迭代的示例:

$template = '<ul>{menuitems}        <li><a href="{link}">{title}</a></li>{/menuitems}</ul>';$data = array(        'menuitems' => array(                array('title' => 'First Link', 'link' => '/first'),                array('title' => 'Second Link', 'link' => '/second'),        ));$this->parser->parse_string($template, $data);

結果:

<ul>        <li><a href="/first">First Link</a></li>        <li><a href="/second">Second Link</a></li></ul>

在控制器中使用視圖片段控制迭代的示例:

$temp = '';$template1 = '<li><a href="{link}">{title}</a></li>';$data1 = array(        array('title' => 'First Link', 'link' => '/first'),        array('title' => 'Second Link', 'link' => '/second'),);foreach ($data1 as $menuitem){
        $temp .= $this->parser->parse_string($template1, $menuitem, TRUE);}$template = '<ul>{menuitems}</ul>';$data = array(        'menuitems' => $temp);$this->parser->parse_string($template, $data);

結果:

<ul>        <li><a href="/first">First Link</a></li>        <li><a href="/second">Second Link</a></li></ul>

類參考

class CI_Parserparse($template, $data[, $return = FALSE])

參數(shù):

$ template(string) - 查看文件的路徑$ data(array) - 變量數(shù)據(jù)$ return(bool) - 是否僅返回解析的模板

返回:

解析模板字符串

返回類型:

  • $ templatestring) - 查看文件的路徑

  • $ data數(shù)組) - 變量數(shù)據(jù)

  • $ returnbool) - 是否只返回解析的模板

返回:解析模板字符串
Return type:  string
從提供的路徑和變量中解析模板。

parse_string($template, $data[, $return = FALSE])

參數(shù):

$ template(string) - 查看文件的路徑$ data(array) - 變量數(shù)據(jù)$ return(bool) - 是否僅返回解析的模板

返回:

解析模板字符串

返回類型:

  • $ templatestring) - 查看文件的路徑

  • $ data數(shù)組) - 變量數(shù)據(jù)

  • $ returnbool) - 是否只返回解析的模板

Returns:  Parsed template string
Return type:  string
該方法與`parse()`完全相同,只是它接受模板作為字符串而不是加載視圖文件。

set_delimiters([$l = '{'[, $r = '}']])

參數(shù):

$ l(字符串) - 左分隔符$ r(字符串) - 右分隔符

返回類型:

空虛

  • $ l字符串) - 左分隔符

  • $ r字符串) - 右分隔符

Return type:  void
Sets the delimiters (opening and closing) for a pseudo-variable “tag” in a template.
Previous article: Next article: