ThinkPHP系统变量,常量,序列化,反序列化,缓存
变量的输出:
在模板中输出⼀个变量有两种形式:{$list.name} {$list[‘name’]}
在模板中可以使⽤系统变量,以$Think.开头
系统变量:(举例选⼏个)
获得服务器的IP地址:{$Think.server.SERVER_ADDR}
获得外部访问的IP地址:{$Think.server.REMOTE_ADDR}
获得服务器的名称:{$Think.server.SERVER_NAME}
获得ThinkPHP内部定义的变量:
获得当前的时间:{$w}
获得当前⼯具的版本:{$Think.version}
模板的页⾯:{$plate}
模板标签起始符号:{$Think.LDELIM }
模板标签结束符号:{$Think.RDELIM }
系统常量:(举例选⼏个)
获得当前⽂件的url :{$st.__SELF__}
获得模板配置⽂件的配置项的值:
smarty模板引擎缓存原理{$fig.db_name}
在ThinkPHP模板中,对变量使⽤函数调节:
从控制器分配了⼀个字符串,在模板中,如何截取这个字符串:{$str|substr=###,5,3} 如果当前参数为函数的第⼀个参数,可以不写###在模板中加载外部⽂件:
使⽤<include file=””> file( )和display( )的⽤法⼀样。
If标签的使⽤:<if condition=”条件1”>value1<elseifcondition=”条件2”>value2<else/>value3</if> condition⾥⾯写成⽐较运算符 eq表⽰等于 neq表⽰不等于
修改模板引擎的界定符:
在配置⽂件中,通过TMPL_L_DELIM修改
‘TMPL_L_DELIM’=>’<{’ //修改左定界符
‘TMPL_R_DELIM’=>’<{’ //修改右定界符
修改模板引擎:
'TMPL_ENGINE_TYPE'=>'Smarty'
在分组中添加配置⽂件,在控制器中使⽤直接调⽤C函数。
ThinkPHP的缓存机制:
数据缓存:就是讲数据库中获得的数据保存在⼀个介质上,需要时直接在这个介质上读取。
我们需要通过ThinkPHP中的cache类来实现,通过这个类的⽅法获得对象,在通过这个对象来实现不同介质的数据处理。
通过传递不同的参数获得不通过的数据处理对象。
$cache=Cache::getInstance(‘File’);
页⾯缓存:
1. 开启缓存
在配置⽂件中开启缓存,开启缓存有⼀定的规则(数组格式)。
‘HTML_CACHE_ON’=> true,
‘HTML_CACHE_RULES’=>array(
//需要缓存的动作名=>缓存的名称,缓存的⽣存周期
‘show’=>array(‘{:module}_{:action}’,1000),
)
{:module}代表当前的控制器名
{:action}代表当前的动作名(例如:show)
{$_GET}<=>{$id} 简写形式{$_get}
通过地址栏传递⼀个id参数,可以实现单页⾯多缓存
(通常是前台有缓存,后台不缓存)
局部不缓存:
在TP框架中,局部不缓存可以通过js , ajax , jquery实现局部不缓存
<scripttype="text/javascript">
var date=Date();
document.write(date);
</script>
⼯⼚模式:通过传递不同参数获得不同的对象
单例模式:这个类只获得⼀个对象,再调⽤这个对象⽅法
缓存的增删改查
增:$cache->set(‘password’,’123’,30) 第三个参数是缓存的有效期
删:rm( ) 改:set( ) 查:get( )
序列化( serialize( ) ):保存数据的时候,将数组或者对象序列化成字符串,但是这个字符串保存了数组或者对象之前的结构和内容,当我们需要获得这个数据的时候,在将序列化的字符串反序列化成我们需要的数组或对象(unserialize( ))
例⼦:
public functionxv(){
//序列化与反序列化
$a=array('name'=>'xiaoming');
$x=serialize($a);
echo $x; //输出结果为:a:1:{s:4:"name";s:8:"xiaoming";}
echo "<br/>";
$f=unserialize($x);
print_r($f);//输出原来的数组格式
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论