-
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>查看全部
-
switch标签:可以用'|'来实现多种选择 <switch name='name'> <case value='mama|baba'>老王,来一起吃饭吧</case> <case value='datou'>王叔叔,你又来了</case> <default></default>隔壁老王又来了 </switch>查看全部
-
在模板中使用IF,一定要注意elseif 和 else 后面的结束 / <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> 若不设置comparison则默认为lt,即小于查看全部
-
在页面中循环显示数组数据 1.使用标签:<volist></volist> 用法:<volist name='数组名称' id='date' offset='从第几个开始取数据' length='需要显示多少个' empty='没有数据时默认显示内容'> {$ID名称['name']}-----{$ID名称['age']} </volist> 完整代码: <volist name='me' id='date' offset='1' length='2' empty='我没有数据'> {$date['name']}-------{$date['age']}<br/> <volist> 显示内容: 老张------28 老李------39 2.使用标签<foreach></foreach> <foreach name='数组名称' item='data'> {$data['name']}----{$data['age']}<br> </foreach> 区别:foreach 不可以截取 只能全部输出查看全部
-
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}查看全部
-
赋值与输出: 方法一: $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'); //此时必须要吧文件后缀名也写上才能正常调用查看全部
-
1.伪静态页面定义 没有与数据库交互就是静态网页,有数据交互才能产生内容就是动态页面。 伪静态让搜索引擎误以为该页面是静态(如截图:实际上浏览器访问的是 index控制器 的 user方法 传回来的数据,而不是一个真正的html静态页面,但TP让数据已静态页面的方式显示在浏览器中,这样搜索引擎就能将生成的伪静态页面认为是一个静态页面了),从而更快速搜索到。 因为动态页面之中如果数据量比较大,就会多花很多时间去读取数据,如果用户每一次都需要很多时间去读取数据,是不是会流失用户? 而静态方法的作用就是把动态页面获取到的内容保存在一个自动生成的html或者shtml页面中,用户第一次浏览页面的时候读取时间会慢,但是第二次第三次甚至直到数据没有变化前,用户基本不需要读取数据库中的数据就能浏览到之前第一次浏览时就保存好了的信息。 2. URL伪静态:设置URL伪静态有助于搜索引擎找到该页面,更轻易被蜘蛛爬虫抓取。 伪静态的设置: 伪静态页面后缀在框架配置文件中设置( ThinkPHP/Conf/convention.php )的( 'URL_HTML_SUFFIX'=>'html’, )但框架配置文件不建议修改(当多个项目共用一个框架时,修改框架配置文件会影响其他项目),所以只需要在项目配置文件中从新设置,用以覆盖框架配置文件的设置即可. 在APP/Config/config.php里设置 return array( 'URL_HTML_SUFFIX'=>'html|shtml|xml',//URL伪静态后缀设置(几种后缀用 ‘|’ 分隔) ) 此时就可以用 U() 函数定义伪静态页面的后缀了查看全部
-
thinkPHP中url模式中隐藏入口文件index.php的方法: 1.httpd.conf配置文件中加载了mod_rewrite.so模块 //在APACHE里面去配置 #LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉 2.确保URL_MODEL设置为2,在项目的配置文件里写 return Array( 'URL_MODEL' => '2', //重写模式 ); 3需要在入口文件的同级添加 .htaccess文件 这个文件内容如下: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> ps:如果设置的模式为兼容模式,而 Apache 做了重写模式的相应设置,并且也完成了 .htaccess文件 的生存,兼容模式配合Web服务器重写规则的定义,可以达到和REWRITE模式一样的URL效果。查看全部
-
1、ThinkPHP中的URL模式: 如果整个应用下面的模块都是采用统一的URL模式,就可以在应用配置文件中设置URL模式,如果不同的模块需要设置不同的URL模式,则可以在模块配置文件中设置。 在配置文件中定义URL_MODEL的值 值为1 默认模式 pathinfo模式 形式如下:http://localhost/muke/index.php/Index/user/id/1.html 值为0 普通模式 形式如下:http://localhost/muke/index.php?m=Index&a=user&id=1 值为2 重写模式(不显示入口文件,此模式需要在服务器上做额外的配置) 形式如下:http://localhost/muke/Index/user/id/1.html 值为3 兼容模式 形式如下:http://localhost/muke/index.php?s=/Index/user/id/1.html U('地址','参数','伪静态','是否跳转','显示域名'); U('模块/方法', array('id'=>1)), 'xxxx html htm sthml', true/false, 'localhost') 一般是用到前面两个就差不多了 U('模块/方法',array('id'=>1),'html',true/false,'localhost'); 第二个参数是传参的值 第三个参数是后缀名,一般为html,htm,shtml 第四个参数是是否需要跳转,通常设为false,不需要跳转 第五个参数是域名 例子:U('Index/user',array('id'=>1),'html',true,'localhost');查看全部
-
1,在index.php文件中,开启APP_DEBUG 设为true每次都会加载Runtime文件,于是config.php中的每次修改,都会产生作用,便于调试。但是项目上线后应该设为false,不用每次加载Runtime文件,节省资源。 2,自定义的配置文件,LOAD_EXT_CONFIG=>'user',才能使用;但是自定义的配置文件不会被编译,在项目运行时,每次都要加载它,所以不建议自己建立配置文件。查看全部
-
ThinkPHP的运行流程: 1.加载ThinkPHP.php 2.加载./thinkPHP/LIB/core路径下的核心文件 3.加载项目的文件->分析URL->调用相关的控制器 示例URL:http://localhost/index.php?m=index&a=index m->module 模块 控制器 a->action 方法 URL参数获取 与 简易控制器->方法 -示例: $module = isset($_GET['m'])?$_GET['m']:'index'; //获取控制器名 $action = isset($_GET['a'])?$_GET['a']:'index'; //获取方法名 echo $module.' and '.$action.’<br/>’; $demo = new $module(); //实例化模块 $demo -> $action(); //调用方法名 // 定义控制器 class Index{ function __construct(){ echo "Tndex contronller!<br/>"; } function Index(){ echo "Function index in contronller Index!"; } } exit; //因为这里退出了脚本,所以后面的定义项目目录与 ThinkPHP.php加载 都没有进行查看全部
-
ThinkPHP 框架目录结构解析 // common 当前项目的公共函数 // Conf 当前项目的配置文件 // Lang 当前项目的语言包 // Lib 当前项目的 控制器 和 模型 // Runtime 运行时的文件 cache Temp Logs // Tpl 当前项目的 模板文件 // MC Lib // V Tpl查看全部
举报
0/150
提交
取消