-
TP调试方法: 1.在入口文件中开启调试模式 define('APP_DEBUG',true); //开启调试模式 系统会自动加载框架下ThinkPHP/Conf/debug.php 2.在应用目录下的位置文件夹( Application/Common/Conf )中建立debug.php配置文件;在调试模式下其检测到应用目录中的配置目录( Application/Common/Conf )中有 debug.php 文件存在 其优先级高于 config.php (即 debug.php 中的配置项将覆盖 同目录下的 config.php 中的同名配置项) 在 debug.php 中配置'SHOW_PAGE_TRACE'=>true,显示页面trace信息 当关闭调试模式后 define('APP_DEBUG’,false) TP将停止加载框架下的(ThinkPHP/Conf/) debug.php 文件 与 应用目录下( Application/Common/Conf )的 debug.php 文件 3. 调用trace()方法(在 1,2 配置文成条件下才能使用 trace()方法 ) trace('变量','标签','级别','是否记录日志') 变量: 要显示的变量 标签: 显示变量值时的提示标签 级别: 显示位置(在调试界面的那个选项卡中显示;默认在调试选项卡中显示) 如: $info = '测试信息'; trace($info,'提示’,’SQL’); 则在SQL选项卡中显示 “提示:测试信息” 老师的代码是: trace(‘name’,C(‘name’)); //C(‘name’) 的值为: Donsen@debug 所以在调试选项卡中显示 “Donsen@debug:name” 4. 调用G()方法,获取代码段执行时间(毫秒) (不需要开启调试状态也可以使用) G('run'); for($i=0;$i<100000;$i++){ $count += $i; } echo G('run','end'); //统计从 G('run') 标记的位置到 G('run','end') 标记的位置所用的运行时间和内存占用情况 5.格式化输出变量内容: dump(变量); //是 TP 对 php 内置函数 var_dump() 的改进.查看全部
-
eq(=), neq(!=), gt(>), egt(>=), lt(<), elt(<=), heq(===), nheq(!==) <比较标签 name="变量名" value=“比较值”>输出内容</> 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> else后面一定要带'/'来表示结束!查看全部
-
apacher配置.hdacess查看全部
-
rewrite.so前#去掉查看全部
-
。。。。查看全部
-
<?php class UserModel extends CommonModel{ protect $_scope=array( /*命名范围的标识名=>array( '属性'=>'值', 支持的方法有:where limit field order table page having group disinct),*/ ); }查看全部
-
在模板中: <switch name="name"> <case value="laoshi">小明,滚出去</case> <case value="xiaohong|xiaohuang">小红,滚出去</case> <default/>小明,自己滚出去了 </switch> </default>默认输出 value='xiaohong|xiaohuang' name属性 的值等于 xiaohong 或者 xiaohuang 时运行;多条件用 ‘|’分隔查看全部
-
在模板中使用IF <if condition='$num lt 10'> num小于10 <elseif condition='$num gt 10'></elseif> num 大于 10 <else></else> num 等于 10 </if> 一定要注意elseif 和 else 后面的结束 /,否则就像php,C,C++等语言中 switch—case 没有break一样查看全部
-
缩写的含义:eq(=), neq(!=), gt(>), egt(>=), lt(<), elt(<=), heq(===), nheq(!==) <for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" > </for> 开始值、结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,其他是可选。comparison 的默认值是lt(<); name的默认值是i,步进值的默认值是1,举例如下: <for start="1" end="100"> {$i}<br/> </for> 效果等同于: <?php for ($i=1;$i<100;$i+=1){ echo $i."<br/>"; } ?>查看全部
-
1.使用标签:<volist></volist> 用法:<volist name=‘数组变量’ id=‘循环取数组值变量’ offset='从第几个开始取数据' length='需要显示多少个' empty=‘ 属性name 中的数组变量 没有数据时默认显示内容'> {循环获取数组值变量}<br/> </volist> 属性 name 指向的是模板变量,是 $this->assign('person',$person);中的 'person’ . 代码举例: $person=array( //定义一个数组 1=>array('name'=>'jack','age'=>'18'), 2=>array('name'=>'Tom','age'=>'19'), 3=>array('name'=>'Peter','age'=>'20'), 4=>array('name'=>'Mary','age'=>'21'), ); $this->assign('person',$person); //将数组传输给模版 <volist name='person' id='date' offset='1' length='2' empty='我没有数据'> {$date['name’]}——{$date['age']}<br/> <volist> 显示内容: Tom———19 Peter———20 2.使用标签<foreach></foreach> <foreach name='person' item='data'> {$data['name']}----{$data['age']}<br> </foreach> 3.volist与foreach 区别: 1).foreach 不可以截取 只能全部输出; 2). volist 的 id 属性 改成了 foreach 的 item 属性,其功能一样.查看全部
-
1.前面函数(在这里,变量也可以看做一个函数,只是这个函数直接返回了它的唯一参数)输出的值,将被后面的函数作为函数的第一个参数,则可以直接使用: {$me['name']|md5|substr=0,5} 等同于 substr(md5($me['name']),0,5) 2.如果函数有多个参数需要调用,而前面函数返回的值是后面函数的非第一个参数(第二,第三,第四......个参数值),则用三个#代替面函数返回的值: {$now|date='Y-m-d H:i:s',###} PS:在任何时候 ### 都代表了前面函数返回来的参数值,所有可以这么使用(但没必要): {$me['name']|md5=###} 3.或者直接使用php格式,只是在最外层函数前加 “:” : {:substr(md5($me['name’]),0,5)} 4.对于TP的框架变量,不需要反之直接输出: 时间戳 {$Think.now} TP版本 {$Think.version} 服务器地址 {$Think.server.http_host}查看全部
-
TP内置模板引擎 在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(); } } 建与之相对应的模板文件,在Tpl下新建index文件夹,在index.html中输出变量的方法如下: 1、{$me['name']} //数组的方式 2、{$me.name} //类java的方式 3、{//$me.name} //注释方式 或 {/*$me.name*/} 4、{$me[‘height’]} //未赋值,将不输出 5、如果在控制器中未定义此变量设置默认输出:{$me.sex|default='man'} 6、若想对变量进行+ - * / %运算,一定要使用{$me['age’]}数组方式,如:{$me['age’]+1} 或 {$weight+1}查看全部
-
在3.2.3版本中的模板引擎是是在 ThinkPHP/Library/Think/Template.class.php查看全部
-
赋值与输出: 方法一: $name='Blank700'; $this->name=$name; $this->display(); 然后在html中用php输出: <?php echo $name; ?> 也可以用TP内置模板引擎输出: {$name} 方法二: $name='Blank700'; $date=date('Y-m-d'); $this->assign('name',$name)->assign('sex','man')->assign('today',$date); //可以连续赋值 $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内置模板引擎输出: {$name}<br/>{$sex}<br/>{$today}查看全部
-
ThinkPHP3.2.3版本中 1. 1).没有Tml文件夹,应该在Appliaction/Home/View下面建立文件夹 才可以。 2)>调用 Index 控制器的 Index 操作 对应的模板文件就应该是:./Application/Home/View/Index/Index.html (必须在 Application/Home/View 目录下建立一个和控制器同名的[注意大小写]文件夹,用以存放此控制器不同操作需要调用的不同模板) 2. 1).在 Index 控制器的 Index 操作中调用此操作默认的模板(./Application/Home/View/Index/Index.html )时,不用填写调用的模板名: $this->display(); 2).在 Index 控制器的 Index 操作中调用 本控制器的 其他操作的模板(./Application/Home/View/Index/test.html )时,需要填写调用的模板名: $this->display('test'); 3).跨控制器调模板时,需要将 控制器文件夹名 填写上(在 User控制器 的 add操作 中调用 Index控制器 的 test操作): $this->display('Index/test'); 4) a.这里的模板文件夹( Application/Home/View )中的控制器和操作并不一定需要在程序中有实际对应的控制器和操作的代码,只是一个目录名称和文件名称而已,例如,你的项目里面可能根本没有Public控制器,更没有Public控制器的menu操作,但是一样可以使用: (在 Index控制器 的 Index操作 中调用 Public/test 模板) $this->display('Public/test'); //必须在同一个应有中 b.甚至可以调用不同应有的模板,只要路径对(相对于入口文件的相对路径): (在 ./Application/Home/Controller[相对于入口文件] 下的 Index控制器 的 Index操作 中调用 ./Template/menu.html 模板) $this->display('Template/menu.html'); //此时必须要吧文件后缀名也写上才能正常调用查看全部
举报
0/150
提交
取消