php 模板 原理,php模板原理讲解
php模板原理講解
復制代碼 代碼如下:
$data = array(
'title'=>'ilsea',
'list'=>array(
'hello',
'world'
)
);
include('show.php');
// show.php 模板文件
echo $data['title'];
echo '
';
print_r($data['list']);
?>
定義一個函數用來包含模板,并傳遞數據
復制代碼 代碼如下:
// 定義一個函數用來包含模板,并傳遞數據,應該定義在公用函數庫里的,這里我就直接寫在這兒了
function template($template,$data)
{
if(isset($data)){
foreach($data as $key=>$val){
$$key = $val;
}
unset($data);
}
include($template);
}
template('show.php',$data);
此例當然不是完整的寫法,僅僅是一個小小的示例,模板賦值的原理就是這樣的。
時間: 2013-11-12
復制代碼 代碼如下: <?php $a = array( 'a','b','c' ); require 'template/demo.php';//引用模板 ?> 模板文件: 復制代碼 代碼如下:
變量的來源: 1 從php分配的變量,使用assign分配 2 系統變量 3 路徑替換變量 不能使用函數的變量 變量輸出快捷標簽 {@var}//輸出Session變量 和{$Think.session.var}等效 {#var}//輸出Cookie變量 和{$Think.cookie.var}等效 {&var}//輸出配置參數 和{$Think.config.var}等效 {%var}//輸出語言變量 和{$Think.lang.var}等效 {.var}//輸出Get變量 和{$Think.
在PHP界談模板引擎,必不可免的要拿Smarty開刀, 這個無比傻帽的卻又帶有一點點官方色彩的模板引擎, 如果沒有我這樣人富有正義感又富有創(chuàng)新精神的熱血青年站出來, 不知道它還要繼續(xù)毒害多少那些處于花季而又對PHP充滿美麗幻想的少年. 1.語法 你真的認為美工學的了 {foreach key=key item=item from=$contact} 這樣的語法 卻學不了 <?php foreach ($contact as $key=>$item) { ?> 嗎? 而 {if $name
注意:自定義函數要放在項目應用目錄/common/common.php中. 這里是關鍵. 模板變量的函數調用格式:{$varname|function1|function2=arg1,arg2,### } 說明: { 和 $ 符號之間不能有空格,后面參數的空格就沒有問題: ###表示模板變量本身的參數位置 : 支持多個函數,函數之間支持空格 : 支持函數屏蔽功能,在配置文件中可以配置禁止使用的函數列表 : 支持變量緩存功能,重復變量字串不多次解析. 使用例子: {$webTitle|md5|st
CodeIgniter很適合小站點應用開發(fā),但是它自帶的view功能可能會給不懂PHP的前端人員帶來麻煩. 相比之下phpcms的view模板解析就強大多了,所以這里就把PHPCMS的模板解析功能剝離出來,加到PHPCMS上.首先在CodeIgniter libraries中 增加 template_cache.php 復制代碼 代碼如下: <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); /**?*
第一種方法按照YII系統的辦法生成視圖覺得有點麻煩,覺得用smarty更省事.嘗試著把smarty模板加進來了. 復制代碼 代碼如下: date_default_timezone_set("PRC");class PlaceController extends CController {protected $_smarty;function __construct(){parent::__construct('place');//需要一個參數來調用父類的構造函數,該參數為控制器ID$p
注意:在使用如等標簽之前,必須要引入TP的標簽庫: 如果我們現在需要一個select下拉菜單項,那么在ThinkPHP中我們可以這樣做. 1.在Action控制器的方法中獲取數據,舉例如下: 復制代碼 代碼如下: public function mylist(){ $user = new Model('User'); $list = $user->getField('id,usern
ThinkPHP支持多種php模板引擎,可以根據個人需要加以配置. 下面我們以Smarty模板引擎為例,給大家說說具體的操作流程! 首先去Smarty官網上下載一個Smarty.本站下載地址:http://www.jb51.net/codes/16086.html. 接下來解壓壓縮包,會有兩個文件夾:demo和libs.打開libs文件夾,復制所有內容. 接下來,打開你網站根目錄 下thinkphp的文件夾.里面有個vendor文件夾,這個文件夾是TP調用第三方類庫用的,把剛才復制的東西全部粘貼
本文實例講述了ThinkPHP自定義函數解決模板標簽加減運算的方法.分享給大家供大家參考.具體如下: 實際項目中,我們經常需要標簽變量加減運算的操作.但是,在ThinkPHP中,并不支持模板變量直接運算的操作. 幸運的是,它提供了自定義函數的方法,我們可以利用自定義函數解決: ThinkPHP模板自定義函數語法如下: 格式:{:function(-)} (參考官方幫助文檔:http://thinkphp.cn/Manual/196) 利用這個,我們來試做加法和減法. 一.在ThinkPHP中定義
本文實例講述了thinkphp不解析標簽直接輸出,防止模板標簽被解析的方法.分享給大家供大家參考.具體實現方法如下: 在ThinkPHP中可以使用literal標簽來防止模板標簽被解析,例如: 復制代碼 代碼如下: value1 value2 value3 &l
在做項目的時候發(fā)現在ThinkPHP的模板標簽eq中,對于0.null.false的判斷是一樣的,也就是說如果變量是這三個值的話就無法區(qū)分了,搞的我很郁悶,翻了下官方手冊沒找到,想想不應該呀,又翻了一遍,發(fā)現原來還有個heq和nheq標簽,官方手冊只是提了一下,也沒細說,因此很多人可能忽略了,這個標簽是用于判斷恒等于的,就等于"==="了,這下好了,問題解決.具體使用方法跟eq標簽一樣, 如下所示:
本文分析了thinkPHP分組后模板無法加載問題解決方法.分享給大家供大家參考,具體如下: 一個分組簡要的目錄結構如下圖所示: 默認分組配置為Home.當訪問localhost/server/時可以正常訪問前臺,localhost/server/home/Index/index也能正常訪問. 但是,localhost/server/admin卻不能加載tpl頁面,但是能夠訪問到控制器(localhost/server/admin/Index/index能訪問,display不出頁面). 解決:
本文實例講述了Thinkphp模板標簽if和eq的區(qū)別和比較.分享給大家供大家參考.具體分析如下: 在TP模板語言中.if和eq都可以用于變量的比較.總結以下幾點: 1.兩個變量的比較: 前者的IF是判斷失敗的,用后者的
本文實例講述了ThinkPHP在Cli模式下使用模板引擎的方法.分享給大家供大家參考.具體如下: 關于Cli模式與模版引擎,2.1中的手冊是這樣說明的: Cli模式默認不使用任何模板引擎(可以自己在操作方法里面調用): 但是怎么調用,手冊中沒有提到.于是自己動手豐衣足食. 在介紹怎么調用之前,簡單的說說什么情況可能需要用到模塊引擎: 1. 利用dompdf在計劃任務自動生成PDF或HTML報告 2. 計劃任務發(fā)送HTML類型的郵件 3. 后臺自動生成靜態(tài)頁面 4. 其他關于模板的后臺操作 <?p
總結
以上是生活随笔為你收集整理的php 模板 原理,php模板原理讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通达信交易接口及说明用法
- 下一篇: 区块链技术的应用与发展