-
eq(=), neq(!=), gt(>), egt(>=), lt(<), elt(<=), heq(===), nheq(!==) <比較標(biāo)簽 name="變量名" value=“比較值”>輸出內(nèi)容</> 1、<eq name="num" value="10">num = 10</eq> 2、<neq name="num" value="10">num !=10 <else/> num = 10</neq> 3、<compare name="num" value="10" type="eq">num=10<else/>num!=10</compare>查看全部
-
switch標(biāo)簽:可以用'|'來實(shí)現(xiàn)多種選擇 <switch name='name'> <case value='mama|baba'>老王,來一起吃飯吧</case> <case value='datou'>王叔叔,你又來了</case> <default></default>隔壁老王又來了 </switch>查看全部
-
在模板中使用IF,一定要注意elseif 和 else 后面的結(jié)束 / <if condition='$num lt 10'> num小于10 <elseif condition='$num gt 10/> num 大于 10 <else/> num 等于 10 </if>查看全部
-
縮寫的含義:eq = ,neq != ,gt > ,egt >= ,lt < ,elt <= ,heq = = = ,nhqg!= = 在模板中: <for star="1" end="10" comparison="elt" name="k"> {$k}<br/> </for> 若不設(shè)置comparison則默認(rèn)為lt,即小于查看全部
-
在頁(yè)面中循環(huán)顯示數(shù)組數(shù)據(jù) 1.使用標(biāo)簽:<volist></volist> 用法:<volist name='數(shù)組名稱' id='date' offset='從第幾個(gè)開始取數(shù)據(jù)' length='需要顯示多少個(gè)' empty='沒有數(shù)據(jù)時(shí)默認(rèn)顯示內(nèi)容'> {$ID名稱['name']}-----{$ID名稱['age']} </volist> 完整代碼: <volist name='me' id='date' offset='1' length='2' empty='我沒有數(shù)據(jù)'> {$date['name']}-------{$date['age']}<br/> <volist> 顯示內(nèi)容: 老張------28 老李------39 2.使用標(biāo)簽<foreach></foreach> <foreach name='數(shù)組名稱' item='data'> {$data['name']}----{$data['age']}<br> </foreach> 區(qū)別:foreach 不可以截取 只能全部輸出查看全部
-
1.前面函數(shù)(在這里,變量也可以看做一個(gè)函數(shù),只是這個(gè)函數(shù)直接返回了它的唯一參數(shù))輸出的值,將被后面的函數(shù)作為函數(shù)的第一個(gè)參數(shù),則可以直接使用: {$me['name']|md5|substr=0,5} 等同于 substr(md5($me['name']),0,5) 2.如果函數(shù)有多個(gè)參數(shù)需要調(diào)用,而前面函數(shù)返回的值是后面函數(shù)的非第一個(gè)參數(shù)(第二,第三,第四......個(gè)參數(shù)值),則用三個(gè)#代替面函數(shù)返回的值: {$now|date='Y-m-d H:i:s',###} PS:在任何時(shí)候 ### 都代表了前面函數(shù)返回來的參數(shù)值,所有可以這么使用(但沒必要): {$me['name']|md5=###} 3.或者直接使用php格式,只是在最外層函數(shù)前加 “:” : {:substr(md5($me['name’]),0,5)} 4.對(duì)于TP的框架變量,不需要反之直接輸出: 時(shí)間戳 {$Think.now} TP版本 {$Think.version} 服務(wù)器地址 {$Think.server.http_host}查看全部
-
TP內(nèi)置模板引擎 在Index控制器的index方法中,定義如下: class IndexAction extends Action{ public function index(){ $me['name']='hui'; $me['age']=20; $weight=60; $this->assign('me',$me); //等效于: $this->me=$me; $this->assign(‘weight’,$weight); $this->display(); } } 建與之相對(duì)應(yīng)的模板文件,在Tpl下新建index文件夾,在index.html中輸出變量的方法如下: 1、{$me['name']} //數(shù)組的方式 2、{$me.name} //類java的方式 3、{//$me.name} //注釋方式 或 {/*$me.name*/} 4、{$me[‘height’]} //未賦值,將不輸出 5、如果在控制器中未定義此變量設(shè)置默認(rèn)輸出:{$me.sex|default='man'} 6、若想對(duì)變量進(jìn)行+ - * / %運(yùn)算,一定要使用{$me['age’]}數(shù)組方式,如:{$me['age’]+1} 或 {$weight+1}查看全部
-
賦值與輸出: 方法一: $name='Blank700'; $this->name=$name; $this->display(); 然后在html中用php輸出: <?php echo $name; ?> 也可以用TP內(nèi)置模板引擎輸出: {$name} 方法二: $name='Blank700'; $date=date('Y-m-d'); $this->assign('name',$name)->assign('sex','man')->assign('today',$date); //可以連續(xù)賦值 $this->display(); 方法三: $array['name'] = 'Blank700'; $array['sex'] = 'man'; $array['today'] = date('Y-m-d'); $this->assign($array); $this->display(); 方法二與方法三輸出方法如下: 在html中用php輸出: <?php echo $name; ?> <br/> <?php echo $sex; ?> <br/> <?php echo $today; ?> 也可以用TP內(nèi)置模板引擎輸出: {$name}<br/>{$sex}<br/>{$today}查看全部
-
ThinkPHP3.2.3版本中 1. 1).沒有Tml文件夾,應(yīng)該在Appliaction/Home/View下面建立文件夾 才可以。 2)>調(diào)用 Index 控制器的 Index 操作 對(duì)應(yīng)的模板文件就應(yīng)該是:./Application/Home/View/Index/Index.html (必須在 Application/Home/View 目錄下建立一個(gè)和控制器同名的[注意大小寫]文件夾,用以存放此控制器不同操作需要調(diào)用的不同模板) 2. 1).在 Index 控制器的 Index 操作中調(diào)用此操作默認(rèn)的模板(./Application/Home/View/Index/Index.html )時(shí),不用填寫調(diào)用的模板名: $this->display(); 2).在 Index 控制器的 Index 操作中調(diào)用 本控制器的 其他操作的模板(./Application/Home/View/Index/test.html )時(shí),需要填寫調(diào)用的模板名: $this->display('test'); 3).跨控制器調(diào)模板時(shí),需要將 控制器文件夾名 填寫上(在 User控制器 的 add操作 中調(diào)用 Index控制器 的 test操作): $this->display('Index/test'); 4) a.這里的模板文件夾( Application/Home/View )中的控制器和操作并不一定需要在程序中有實(shí)際對(duì)應(yīng)的控制器和操作的代碼,只是一個(gè)目錄名稱和文件名稱而已,例如,你的項(xiàng)目里面可能根本沒有Public控制器,更沒有Public控制器的menu操作,但是一樣可以使用: (在 Index控制器 的 Index操作 中調(diào)用 Public/test 模板) $this->display('Public/test'); //必須在同一個(gè)應(yīng)有中 b.甚至可以調(diào)用不同應(yīng)有的模板,只要路徑對(duì)(相對(duì)于入口文件的相對(duì)路徑): (在 ./Application/Home/Controller[相對(duì)于入口文件] 下的 Index控制器 的 Index操作 中調(diào)用 ./Template/menu.html 模板) $this->display('Template/menu.html'); //此時(shí)必須要吧文件后綴名也寫上才能正常調(diào)用查看全部
-
1.偽靜態(tài)頁(yè)面定義 沒有與數(shù)據(jù)庫(kù)交互就是靜態(tài)網(wǎng)頁(yè),有數(shù)據(jù)交互才能產(chǎn)生內(nèi)容就是動(dòng)態(tài)頁(yè)面。 偽靜態(tài)讓搜索引擎誤以為該頁(yè)面是靜態(tài)(如截圖:實(shí)際上瀏覽器訪問的是 index控制器 的 user方法 傳回來的數(shù)據(jù),而不是一個(gè)真正的html靜態(tài)頁(yè)面,但TP讓數(shù)據(jù)已靜態(tài)頁(yè)面的方式顯示在瀏覽器中,這樣搜索引擎就能將生成的偽靜態(tài)頁(yè)面認(rèn)為是一個(gè)靜態(tài)頁(yè)面了),從而更快速搜索到。 因?yàn)閯?dòng)態(tài)頁(yè)面之中如果數(shù)據(jù)量比較大,就會(huì)多花很多時(shí)間去讀取數(shù)據(jù),如果用戶每一次都需要很多時(shí)間去讀取數(shù)據(jù),是不是會(huì)流失用戶? 而靜態(tài)方法的作用就是把動(dòng)態(tài)頁(yè)面獲取到的內(nèi)容保存在一個(gè)自動(dòng)生成的html或者shtml頁(yè)面中,用戶第一次瀏覽頁(yè)面的時(shí)候讀取時(shí)間會(huì)慢,但是第二次第三次甚至直到數(shù)據(jù)沒有變化前,用戶基本不需要讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù)就能瀏覽到之前第一次瀏覽時(shí)就保存好了的信息。 2. URL偽靜態(tài):設(shè)置URL偽靜態(tài)有助于搜索引擎找到該頁(yè)面,更輕易被蜘蛛爬蟲抓取。 偽靜態(tài)的設(shè)置: 偽靜態(tài)頁(yè)面后綴在框架配置文件中設(shè)置( ThinkPHP/Conf/convention.php )的( 'URL_HTML_SUFFIX'=>'html’, )但框架配置文件不建議修改(當(dāng)多個(gè)項(xiàng)目共用一個(gè)框架時(shí),修改框架配置文件會(huì)影響其他項(xiàng)目),所以只需要在項(xiàng)目配置文件中從新設(shè)置,用以覆蓋框架配置文件的設(shè)置即可. 在APP/Config/config.php里設(shè)置 return array( 'URL_HTML_SUFFIX'=>'html|shtml|xml',//URL偽靜態(tài)后綴設(shè)置(幾種后綴用 ‘|’ 分隔) ) 此時(shí)就可以用 U() 函數(shù)定義偽靜態(tài)頁(yè)面的后綴了查看全部
-
thinkPHP中url模式中隱藏入口文件index.php的方法: 1.httpd.conf配置文件中加載了mod_rewrite.so模塊 //在APACHE里面去配置 #LoadModule rewrite_module modules/mod_rewrite.so把前面的警號(hào)去掉 2.確保URL_MODEL設(shè)置為2,在項(xiàng)目的配置文件里寫 return Array( 'URL_MODEL' => '2', //重寫模式 ); 3需要在入口文件的同級(jí)添加 .htaccess文件 這個(gè)文件內(nèi)容如下: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> ps:如果設(shè)置的模式為兼容模式,而 Apache 做了重寫模式的相應(yīng)設(shè)置,并且也完成了 .htaccess文件 的生存,兼容模式配合Web服務(wù)器重寫規(guī)則的定義,可以達(dá)到和REWRITE模式一樣的URL效果。查看全部
-
1、ThinkPHP中的URL模式: 如果整個(gè)應(yīng)用下面的模塊都是采用統(tǒng)一的URL模式,就可以在應(yīng)用配置文件中設(shè)置URL模式,如果不同的模塊需要設(shè)置不同的URL模式,則可以在模塊配置文件中設(shè)置。 在配置文件中定義URL_MODEL的值 值為1 默認(rèn)模式 pathinfo模式 形式如下:http://localhost/muke/index.php/Index/user/id/1.html 值為0 普通模式 形式如下:http://localhost/muke/index.php?m=Index&a=user&id=1 值為2 重寫模式(不顯示入口文件,此模式需要在服務(wù)器上做額外的配置) 形式如下:http://localhost/muke/Index/user/id/1.html 值為3 兼容模式 形式如下:http://localhost/muke/index.php?s=/Index/user/id/1.html U('地址','參數(shù)','偽靜態(tài)','是否跳轉(zhuǎn)','顯示域名'); U('模塊/方法', array('id'=>1)), 'xxxx html htm sthml', true/false, 'localhost') 一般是用到前面兩個(gè)就差不多了 U('模塊/方法',array('id'=>1),'html',true/false,'localhost'); 第二個(gè)參數(shù)是傳參的值 第三個(gè)參數(shù)是后綴名,一般為html,htm,shtml 第四個(gè)參數(shù)是是否需要跳轉(zhuǎn),通常設(shè)為false,不需要跳轉(zhuǎn) 第五個(gè)參數(shù)是域名 例子:U('Index/user',array('id'=>1),'html',true,'localhost');查看全部
-
1,在index.php文件中,開啟APP_DEBUG 設(shè)為true每次都會(huì)加載Runtime文件,于是config.php中的每次修改,都會(huì)產(chǎn)生作用,便于調(diào)試。但是項(xiàng)目上線后應(yīng)該設(shè)為false,不用每次加載Runtime文件,節(jié)省資源。 2,自定義的配置文件,LOAD_EXT_CONFIG=>'user',才能使用;但是自定義的配置文件不會(huì)被編譯,在項(xiàng)目運(yùn)行時(shí),每次都要加載它,所以不建議自己建立配置文件。查看全部
-
ThinkPHP的運(yùn)行流程: 1.加載ThinkPHP.php 2.加載./thinkPHP/LIB/core路徑下的核心文件 3.加載項(xiàng)目的文件->分析URL->調(diào)用相關(guān)的控制器 示例URL:http://localhost/index.php?m=index&a=index m->module 模塊 控制器 a->action 方法 URL參數(shù)獲取 與 簡(jiǎn)易控制器->方法 -示例: $module = isset($_GET['m'])?$_GET['m']:'index'; //獲取控制器名 $action = isset($_GET['a'])?$_GET['a']:'index'; //獲取方法名 echo $module.' and '.$action.’<br/>’; $demo = new $module(); //實(shí)例化模塊 $demo -> $action(); //調(diào)用方法名 // 定義控制器 class Index{ function __construct(){ echo "Tndex contronller!<br/>"; } function Index(){ echo "Function index in contronller Index!"; } } exit; //因?yàn)檫@里退出了腳本,所以后面的定義項(xiàng)目目錄與 ThinkPHP.php加載 都沒有進(jìn)行查看全部
-
ThinkPHP 框架目錄結(jié)構(gòu)解析 // common 當(dāng)前項(xiàng)目的公共函數(shù) // Conf 當(dāng)前項(xiàng)目的配置文件 // Lang 當(dāng)前項(xiàng)目的語言包 // Lib 當(dāng)前項(xiàng)目的 控制器 和 模型 // Runtime 運(yùn)行時(shí)的文件 cache Temp Logs // Tpl 當(dāng)前項(xiàng)目的 模板文件 // MC Lib // V Tpl查看全部
舉報(bào)
0/150
提交
取消