smarty配置以及變數調節器詳解

來源:互聯網
上載者:User

   最近沒事兒做,就研究研究smarty模版引擎,越來越覺得smarty的強大了,smarty的教程在網上好像都比較亂。

   1.下載smarty,http://www.smarty.net/download

   2.把下載下來的smarty改名為smarty然後複製到建立好的檔案夾裡

   3.建立一個smarty.inc.php(也可以是別的)

<?phprequire_once 'smarty/Smarty.class.php';$smarty=new Smarty();$smarty->template_dir='templates/';$smarty->compile_dir='templates_c/';$smarty->cache_dir='temp/';$smarty->config_dir='configs/';$smarty->caching=0;          //緩衝$smarty->cache_lifetime=60;if (!defined('SITE_URL')){    $url=$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'];    define('SITE_URL', $url);}if (!defined('__ROOT__')){    define('__ROOT__', rtrim(dirname(__FILE__),'\\').'\\');}//去除反斜線if (get_magic_quotes_gpc()){    function stripcslashes_arr($array){        is_array($array)?array_map('srtipcslashes_arr', $array):stripcslashes($array);    }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            $_POST=stripcslashes_arr($_POST);    $_GET=stripcslashes_arr($_GET);    $_REQUEST=stripcslashes_arr($_REQUEST);    $_COOKIE=stripcslashes_arr($_COOKIE);    $_SESSION=stripcslashes_arr($_SESSION);}//時區設定date_default_timezone_set('PRC');//載入functionif (file_exists('common/common.php')){    require_once 'common/common.php';}


    並且手動建立相應的目錄,調試的時候建議把緩衝關了。

    然後建立一個index.php,

<?phprequire_once 'smarty.inc.php';$title='第一個標題';$smarty->assign('title',$title);$people=array(        array('name'=>'張三','sex'=>'男','age'=>'20'),        array('name'=>'李四','sex'=>'男','age'=>'40'),        array('name'=>'王五','sex'=>'女','age'=>'32'),                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                );$smarty->assign('people',$people);$smarty->display('index.tpl');


    在templates這個檔案夾裡建立一個index.tpl,調用方式為{$title},然後訪問index.php是不是ok了?

    數組的訪問方式,比如$people這個二維數組,就是{$people.0.name}輸出的就是張三

    對象的訪問方式,{$對象名->屬性(方法)}


   接下來就是變數調節器,其實日常用到的並不多,所以我就練習了幾個常用的

   1.capitalize首字母大寫{$title|captalize}

   2.count_characters統計字元數    {$title|count_characters},新版的smarty統計中文也沒問題,統計的時候會過濾掉空格預設),{$title|count_character:true},就不會過濾空格了

   3.cat連接字串{$title|cat:"..."}    output:第一個標題...

   4.date_format        格式化時間{$smarty.now|date_format:"%T-%m-%d %H:%M:%S"}    輸出目前格式化的時間,第二個參數為格式化失敗以後預設顯示{$smarty.now|date_format:"%T-%m-%d %H:%M:%S":"0000-00-00"}

   5.default    變數為空白的時候要輸出什麼,或者變數沒有定義,都可以指定預設輸出{$title|dafault:"暫時沒有資料"}

   6.escape        編碼,最常用的就是url,html編碼了,把html代碼轉換為實體儲存到資料庫等作用,預設為html編碼

   7.indent        縮排,發布文章的時候會需要這個。第一個參數指定要縮排的字元數,第二個參數指定要用什麼字元代替{$title|indent:4:"..."}        output:............第一個標題

   8.lower        所有字元轉換為小寫

   9.nl2br        等同php的nl2br函數

   10.regex_replace    正則替換,第一個為Regex,第二個為要替換成的文本

   11.replace        簡單替換,用法等同regex_replace

   12.strip            去掉多餘的空格

   13.strip_tags        去掉html標籤,

   14.truncate        截取字元數,{$title|truncate:10}截取10個字元,{$title|truncate:10:"..."}截取以後在後面顯示...{$title|truncate:10:"..."|true}截取到詞的邊界false)的時候,為true的時候是截取到字元邊界

   15.upper    轉換為大寫

   16.wordwrap    行寬約束{$title|wordwrap:10}到了第10個字元就自動換行{$title|wordwrap:10:"<br />"}用什麼字元約束,如果沒有這個,他是不換行的。第三個如果為true,{$title|wordwrap:10:"<br />",true}約束到到詞的邊界false)的時候,為true的時候是約束到字元邊界

   這些變數調節器也可以根據需要去組合在一起的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.