導航:首頁 > 編程語言 > smarty調用php函數

smarty調用php函數

發布時間:2023-01-06 21:08:57

『壹』 在html上使用smarty框架,怎麼使用php的str_replace函數,舉個例子!

{$articleTitle|replace:"Garden":"Vineyard"}
把garden 換成 Vineyard

『貳』 smarty 使用php標簽

使用smarty就要有程序和模板
比如:
在程序里:
<?php
$a=2+1;
$smarty->assign('a', $a); //變數賦值
$smarty->display('index.html');//給那個模板
?>
在模板里:
{$a}<!--這就出現<? php echo (2+1) ?>的結果了-->

『叄』 PHP新手困惑:smarty如何在函數中返回 分配的值

不知所雲,是不是想要$smarty->_tpl_vars?

所有的assign的變數,都可以從{php}$smarty->_tpl_vars[ASSIGN_NAME]{/php}獲取到

限smarty2.6以前

『肆』 php中smarty模板中如何使用preg_match_all和preg_replace函數

Smarty2和Smarty3在實現上差不多,但是在smarty2升級到smarty3的時候還是要注意些許不同。
下面是已知的和smarty2不兼容的地方 == 語法 ==Smarty 3 API有些方面進行了更新。一些Smarty 2 API調用需要更新以便符合Smarty 3。你可能會得到提示,推薦你使用新的語法。可以查看Smarty 3附帶的 README 文件獲得更多信息。
{$array|@mod} 語法總是讓人迷惑,加上@符號說明修飾符作用於數組而不是作用於數組的每個元素。通常你總是想讓這個修飾符作用於這個變數而不必考慮它的類型。在 Smarty 3中,{$array|mod} 和 {$smary|@mod}
是等同的。去掉@符號,修飾符仍然作用於數組。如果你想修飾符作用於數據元素,你必須在模板中循環數組,或者使用自定義修飾符以支持數組遍歷。
大多smrty函數已經在需要的地方例如{html_options}進行了轉義。 == PHP版本 ==Smarty 3 僅支持PHP 5. 在PHP 4將不能正常工作。 == {php} 標記 ==
Smarty 3 默認關閉 {php} 標記支持,不推薦使用。你可以通過設置$smarty->allow_php_tag=true來啟用。{php} 塊中的變數不再與同一頁中的其它{php}塊共享作用域,因此在使用的時候要注意。 == 定界符和空格 ==
Smarty 定界符 {} 有空格包圍是不再認為是Smarty標記。因此,{ foo } 將被Smarty忽略,但是 {foo} 將被識別。這個變化使得 Javascript/CSS更容易在smarty中使用,而沒有必要使用 {literal}.
這個特性可以通過設置 $smarty->auto_literal = false; 禁用。 == 未用引號的字元串 ==
Smarty 2 對於參數中未用引號括起來的字元串有點寬容(並且模稜兩可)。Smarty 3 比較嚴格。對於不包含特殊字元(A-Za-z0-9_之外的字元)的字元串仍然可以不用引號括起來。比如下面例子中文件名就必須用引號括起來。[xhtml]view plain{assign var=foo value=baz} <-- works ok {include file="path/foo.tpl"} <-- needs quotes! == 擴展Smarty類 ==
Smarty 3 遵循PHP5標准構造規則。擴展Smarty類的時候,使用 __construct() 作為類的構造函數的名稱。如果你實現自己的構造函數,一定要先調用 parent::__construct() [php]view plainclass MySmarty extends Smarty { function __construct() { parent::__construct(); // your initialization code goes here } } == 自動載入器 ==
Smarty 用spl_autoload_register函數 實現了它自己的自動載入器。如果想在自己的應用中使用自動載入器,就必須使用此方法注冊。
使用 __autoload() 將失敗。 這是PHP5標准自動載入函數。可以查看
http://us3.php.net/manual/en/function.spl-autoload-register.php== 插件文件名 ==
自從Smarty 3使用默認的spl自動載入器,就要求插件文件名使用小寫字母。Smarty 2 允許使用大小寫混合插件名,你必須重命名以用於smarty 3. == Smarty特殊變數作用域 ==
在Smarty 2中Smarty特殊變數 $smarty.section.* and $smarty.foreach.*
擁有全局作用域。如果子模板中含有同名的循環,就會覆蓋父模板中的值。在Smarty 3中這些特殊變數將只作用於定義循環所在的模板。若是需要在子模板中使用,就不得不使用參數傳遞。
<source lang="smarty">
{include file="path/foo.tpl" index=$smarty.section.foo.index}
</source>== SMARTY_RESOURCE_CHAR_SET ==
Smarty 3 設置常量 SMARTY_RESOURCE_CHAR_SET 為 utf-8作為模版文件的默認字元集.
只是作為像 escape 等函數的默認字元集. 如果你的模板使用其它字元集, 就必須自己定義這個常量.== trigger_error()
API 函數 trigger_error() 已被移除。 == Smarty 常量 ==
下面這些常量
SMARTY_PHP_PASSTHRU
SMARTY_PHP_QUOTE
SMARTY_PHP_REMOVE
SMARTY_PHP_ALLOW
已被類常量替代
Smarty::PHP_PASSTHRU
Smarty::PHP_QUOTE
Smarty::PHP_REMOVESmarty::PHP_ALLOW

『伍』 使用Smarty,如何在模板中使用自己的函數 - PHP進階討論

$smarty->register_function(\'pic_list\', \"pic_list\");具體看手冊有關register_function用法另外還有方法就是寫好便准命名和格式的函數,放到smarty定義的擴展目錄

『陸』 PHP模板中smarty_block函數的用法

Smarty末班引擎中提供了三種插件支持,分別是block(塊),function(函數),modifier(調節器),用戶可以自己擴展。

  1. block:是一種非常靈活的高級插件,這種插件在模板中使用時需要成對出現,Smarty內置的block插件例如section,foreach等,使用格式為:

    {section name="customer" loop="$data"}

    <li>內容</li>

    {/section}

  2. function:他的作用類似於函數,在模板中使用無需成對出現,系統內置的如include,格式為:{include file="web/index.tpl"}。

  3. modifier:調節器是用於對變數進行修飾的,內置的調節器如:truncate(截取字元長度),date_format(格式化時間),使用格式為:

    {$nowtime|date_format:"%Y-%m-%d"}




在來分析下你的問題:

-----------------------------------------------------------------------

你提問中的這個就應當屬於block插件,其中blockname是個插件名,此插件不包含任何參數。

{blockname}<!--插件開始標簽-->
沒有緩存的:{$smarty.now}<!--插件輸入的內容,Smarty.now為全局函數,意思是輸出當前時間-->
{/blockname}<!--插件結束標簽-->

『柒』 smarty怎麼引入php文件

<?php
/**
*
* @version $Id: index.php
* @package
* @author www.php100.com
* @action 顯示實常式序
*/
include_once("./Smarty/Smarty.class.php"); //包含smarty類文件
$smarty = new Smarty(); //建立smarty實例對象$smarty
$smarty->templates("./templates"); //設置模板目錄
$smarty->templates_c("./templates_c"); //設置編譯目錄
$smarty->cache("./cache"); //緩存目錄
$smarty->cache_lifetime = 0; //緩存時間
$smarty->caching = true; //緩存方式
$smarty->left_delimiter = "{#";
$smarty->right_delimiter = "#}";
$smarty->assign("name", "zaocha"); //進行模板變數替換
$smarty->display("index.htm"); //編譯並顯示位於./templates下的index.htm模板
?>

參考:smarty半小時快速上手教程
http://www.chinaz.com/program/2010/0224/107006.shtml

『捌』 這個php的smarty函數怎麼用

您使用的是smarty的預過濾器機制,這個是自動調用的。當你通過register_prefilter
把這個函數注冊進去後,在display()時smarty會自動去調用來完成頁面壓縮的。

『玖』 smarty怎麼用php函數把字元串轉成數組後在計算數組個數

以下是對php中的數組與字元串的轉換函數進行了詳細的整理匯總,需要的朋友可以參考下

1.將一個字元串轉化為數組
str_split()用於將一個字元串轉化為數組
語法:

復制代碼
代碼如下:

str_split(string,length)
<SPAN
style="COLOR: #333333"><SPAN style="FONT-SIZE: 12px"><SPAN
style="FONT-FAMILY:
宋體">//</SPAN></SPAN></SPAN>string是必須的,是要分割的字元串;<SPAN
style="FONT-SIZE: 12px"><SPAN style="FONT-FAMILY: 宋體; COLOR:
#333333"><SPAN style="LINE-HEIGHT:
28px">
//length是可選的,規定每個數組元素的長度
</SPAN></SPAN></SPAN>

tips:
如果 length 小於 1,str_split() 函數將返回
false。
如果 length 大於字元串的長度,整個字元串將作為數組的唯一元素返回。
例子:

復制代碼
代碼如下:

<?php
$str="www..com";
print_r(str_split($str));
?>

『拾』 thinkphp中如何用內置的smarty調用php中自定義的函數

可以自己寫個smarty插件,我以前寫過,你根據smarty手冊上的提示也可以寫出來的。相信自己!

這是我以前寫的,轉換時間的:

<?php
/**
*時間顯示,將Unix時間或普通時間和轉為生活時間用語
*/
functionsmarty_modifier_life_time($string)
{
if(strpos($string,'-')||strpos($string,'.'))
{
$string=strtotime($string);
}
$res=time()-$string;
if($res<=60)
{
return'1分鍾前';
}elseif($res<=3600){
if($res>=1800&&$res<=1800+60) return'半小時前';
returnfloor($res/60).'分鍾前';
}elseif($res<=3600*24){
if($res>=3600*12&&$res<=3600*12+3600) return'半天前';
returnfloor($res/3600).'小時前';
}elseif($res<=3600*24*30){
if($res>=3600*24*15&&$res<=3600*24*15+3600*24) return'半個月前';
returnfloor($res/(3600*24)).'天前';
}elseif($res<=3600*24*30*365){
if($res>=3600*24*30*6&&$res<=3600*24*30*6+3600*24*30) return'半年前';
returnfloor($res/(3600*24*30)).'月前';
}else{
if($res>=3600*24*30*365&&$res<=3600*24*30*365+3600*24*30) return'一年前';
returndate('Y-m-dH:i',$string);
}
}
?>
閱讀全文

與smarty調用php函數相關的資料

熱點內容
PDF分析 瀏覽:482
h3c光纖全工半全工設置命令 瀏覽:137
公司法pdf下載 瀏覽:379
linuxmarkdown 瀏覽:347
華為手機怎麼多選文件夾 瀏覽:679
如何取消命令方塊指令 瀏覽:345
風翼app為什麼進不去了 瀏覽:774
im4java壓縮圖片 瀏覽:358
數據查詢網站源碼 瀏覽:146
伊克塞爾文檔怎麼進行加密 瀏覽:886
app轉賬是什麼 瀏覽:159
php的基本語法 瀏覽:792
對外漢語pdf 瀏覽:516
如何用mamp本地web伺服器 瀏覽:869
如何加密自己js代碼 瀏覽:627
排列組合a與c的演算法 瀏覽:534
如何在文件夾中找到同名內容 瀏覽:786
有什麼app文字轉韓文配音 瀏覽:372
循環宏1命令 瀏覽:35
斐波那契數列矩陣演算法 瀏覽:674