日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

前台html调用函数 格式化输出

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前台html调用函数 格式化输出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

僅僅是輸出變量并不能滿足模板輸出的需要,內置模板引擎支持對模板變量使用調節器和格式化功能,其實也就是提供函數支持,并支持多個函數同時使用。用于模板標簽的函數可以是PHP內置函數或者是用戶自定義函數,和smarty不同,用于模板的函數不需要特別的定義。

模板變量的函數調用格式為:



XML/HTML代碼

  • {$varname|function1|function2=arg1,arg2,###?}???


  • 說明:?

    { 和 $ 符號之間不能有空格 ,后面參數的空格就沒有問題

    ###表示模板變量本身的參數位置?

    支持多個函數,函數之間支持空格?

    支持函數屏蔽功能,在配置文件中可以配置禁止使用的函數列表?

    支持變量緩存功能,重復變量字串不多次解析

    使用例子:?



    XML/HTML代碼

  • {$webTitle|md5|strtoupper|substr=0,3}??


  • 編譯后的PHP代碼就是:



    PHP代碼

  • <?php?echo?(substr(strtoupper(md5($webTitle)),0,3));??>??




  • 注意函數的定義和使用順序的對應關系,通常來說函數的第一個參數就是前面的變量或者前一個函數使用的結果,如果你的變量并不是函數的第一個參數,需要使用定位符號,例如:



    XML/HTML代碼

  • {$create_time|date="y-m-d",###}??


  • 編譯后的PHP是:?



    PHP代碼

  • <?php?echo?(date("y-m-d",$create_time));??>??


  • 函數的使用沒有個數限制,但是可以允許配置TMPL_DENY_FUNC_LIST定義禁用函數列表,系統默認禁用了exit和echo函數,以防止破壞模板輸出,我們也可以增加額外的定義,例如:

    TMPL_DENY_FUNC_LIST=>"echo,exit,halt"

    多個函數之間使用半角逗號分隔即可。


    并且還提供了在模板文件中直接調用函數的快捷方法,無需通過模板變量,包括兩種方式:

    1、執行方法并輸出返回值:

    格式:{:function(…)}?

    例如,輸出U方法的返回值:



    XML/HTML代碼

  • {:U('User/insert')}??

  • 編譯后的PHP代碼是



    PHP代碼

  • <?php?echo?U('User/insert');?>??




  • 2、執行方法但不輸出:

    格式:{~function(…)}?

    例如,調用say_hello函數:



    XML/HTML代碼

  • {~say_hello('ThinkPHP')}??


  • 編譯后的PHP代碼是:



    PHP代碼

  • <?php?say_hello('ThinkPHP');?>??

  • ?

    比如我自定義函數是這樣

    function Category($cid)
    {

    ?

    $Category=D("Category");

    ?

    $Category=$Category->where('id='.$cid)->find();

    ?

    return $Category['title'];

    ?

    }?
    我想在模板中調用這個函數則在模板中可以這樣寫

    {$vo.cid|category=###}

    當然自定義函數要放在項目目錄/Common/common.php中




    ?

    實際項目中,我們經常需要標簽變量加減運算的操作。但是,在ThinkPHP中,并不支持模板變量直接運算的操作。
    幸運的是,它提供了自定義函數的方法,我們可以利用自定義函數解決:
    ThinkPHP模板自定義函數語法如下:
    格式:{:function(…)} (參考官方幫助文檔:http://thinkphp.cn/Manual/196)
    利用這個,我們來試做加法和減法。

  • 在ThinkPHP中定義函數。在項目的common文件夾下新建common.php文件(這樣系統會自動加載)。定義兩個函數:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19


    function

    template_add($a,$b){
    ????echo(intval($a)+intval($b));
    }
    ?

    function

    template_substract($a,$b){
    ????echo(intval($a)-intval($b));
    }
  • 在模板中使用函數:
    {:template_add($var1,$var2)}
  • 即可顯出變量var1于var2的和。

    把自定義的函數放在Common目錄下common.php里面如果調用不出來把文件名改成common.class.php,定義import(@.common.common)

    最重要一點,每次更改common.php文件,如果設置config里Debug_MODE =>false, 要刪除Temp文件夾下的~app.php文件,因數common.php首先解析到~app.php文件里的函數。要清除這個緩存文件。

    轉載于:https://www.cnblogs.com/martin1009/archive/2012/07/19/2598716.html

    總結

    以上是生活随笔為你收集整理的前台html调用函数 格式化输出的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。