PHP Smarty 定界符衝突該如何處理

來源:互聯網
上載者:User
本篇文章主要介紹PHP Smarty 定界符衝突該如何處理,感興趣的朋友參考下,希望對大家有所協助。

預設定界符"{"與css和js中的"{"衝突,該如何處理?
1. 所有以{ 開頭的地方,都空一格。(Smarty只會解析定界符內的內容,且左定界符後不能有空格)
2. 將css和js以外部的方式引入。(Smarty不會解析外部檔案)
3. 使用內建函數 literal。
4. 更改定界符。

解決衝突最好的方式:外部引入css和js,對於內部出現的使用literal。

index.php(後端):

<?php  //1.引入smarty類  include 'libs/Smarty.class.php';  //2.執行個體化smarty對象  $smarty = new Smarty();   //3.設定相關屬性  $smarty->template_dir = "templates/"; //模板目錄  $smarty->compile_dir = "templates_c"; //編譯目錄  //修改定界符  $smarty->left_delimiter = '<{';    //自訂定界符,預設是"{"  $smarty->right_delimiter = '}>';  //4.分配資料  $smarty->assign('title','smarty模板引擎');  $smarty->assign('content','smarty模板引擎 是一個強大的模板引擎!');  //5.載入視圖  $smarty->display('index.html');

index.html(前端視圖):

<!DOCTYPE html>  <html lang="en">  <head>      <meta charset="UTF-8">      <title>{$title}</title>      <style>          <{literal}>       <{* 通過literal函數解決定界符"{"在CSS和JS中的衝突。Smarty會自動解析定界符內的內容(不會解析引入的外部檔案)。也可以通過自訂定界符解決衝突。 *}>              h1{color:tomato; font-size:40px;}              p{color: #00f;}          <{/literal}>      </style>  </head>  <body>      <h1><{$title}> $title</h1>    <{* 只有定界符內的內容才會被Smarty解析,且左定界符後不能有空格 *}>      <p><{$content}></p>      <p><?php echo $title;?></p>   <{* 不會解析PHP代碼 *}>      <{*        這是注釋       *}>  </body>  </html>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.