ThinkPHP系统变量,常量,序列化,反序列化,缓存
变量的输出:
在模板中输出一个变量有两种形式:{$list.name} {$list[‘name’]}
在模板中可以使用系统变量,以$Think.开头
系统变量:(举例选几个)
获得服务器的IP地址:{$Think.server.SERVER_ADDR}
获得外部访问的IP地址:{$Think.server.REMOTE_ADDR}
获得服务器的名称:{$Think.server.SERVER_NAME}
获得ThinkPHP内部定义的变量:
获得当前的时间:{$Think.now}
获得当前工具的版本:{$Think.version}
模板的页面:{$Think.template}
模板标签起始符号:{$Think.LDELIM }
模板标签结束符号:{$Think.RDELIM }
系统常量:(举例选几个)
获得当前文件的url :{$Think.const.__SELF__}
获得模板配置文件的配置项的值:
{$Think.config.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}<=>{$Think.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);//输出原来的数组格式
}
ThinkPHP系统变量,常量,序列化,反序列化,缓存的更多相关文章
- thinkphp 系统变量
		一.查看可用变量 dump($_SERVER); 可以直接在html输出系统变量的值 <p>{$Think.server.HTTP_HOST}</p>. 二.环境变量 1.查看 ... 
- JSR310-LocalDateTime序列化 & 反序列化
		问题 springboot 版本:spring-boot 2.3.12 今天在开发一个redis 热key服务端的过程中,碰到2个问题: jdk8的LocalDateTime,LocalDate,Lo ... 
- Thinkphp入门 四 —布局、缓存、系统变量  (48)
		原文:Thinkphp入门 四 -布局.缓存.系统变量 (48) [控制器操作方法参数设置] http://网址/index.php/控制器/操作方法 [页面跳转] [变量调节器] Smarty变量调 ... 
- Paip.最佳实践-- Buildin variale 内建变量 ,魔术变量,预定义变量,系统常量,系统变量    1
		Paip.最佳实践-- Buildin variale 内建变量 ,魔术变量,预定义变量,系统常量,系统变量 1.1.1 C++内建变量(__LINE__).... 1.1.2 ... 
- ThinkPHP第二十二天(表单令牌、相对路径、扩展配置载入、$Think获取系统变量、$_SERVER('HTTP_REFERER')前页地址)
		1.表单令牌开启配置 'TOKEN_ON'=>true 2.相对路径:在thinkphp中,存在单入口index.php,所以程序中的根目录都是以index.php所在的文件夹为根目录,故用./ ... 
- thinkphp 视图(三)系统变量——原生标签
		查看系统变量 dump($_SERVER); 在view中获取服务器变量 <p>{$Think.server.HTTP_HOST}</p> 获取env变量 status=dev ... 
- java基础 序列化反序列化流 实现Serializable 接口 自动装载序列号到对象文本文件如修改不能反序列化对象文本,除非自定义long型常量 打印流
		package com.swift.baseKnowledge; import java.io.File; import java.io.FileInputStream; import java.io ... 
- ThInkPHP中的常量
		除了常规变量的输出外,模板引擎还支持系统变量和系统常量.以及系统特殊变量的输出.它们的输出不需要事先赋值给某个模板变量.系统变量的输出必须以$Think.打头,并且仍然可以支持使用函数.常用的系统变量 ... 
- JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算
		JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ... 
随机推荐
- (转)Java compiler level does not match解决方法
			背景:工作中导入以前的项目,导出报Java compiler level does not match the versionof the installed Java project facet. ... 
- JStorm与Storm源码分析(二)--任务分配,assignment
			mk-assignments主要功能就是产生Executor与节点+端口的对应关系,将Executor分配到某个节点的某个端口上,以及进行相应的调度处理.代码注释如下: ;;参数nimbus为nimb ... 
- Yii框架用ajax提交表单时候报错Bad Request (#400): Unable to verify your data submission.
			提交表单报400错误,提示 "您提交的数据无法验证"原来是csrf验证的问题,因为表单是自己写的,在Yii框架中,为了防止csrf攻击,对post的表单数据封装了CSRF令牌验证. ... 
- mysql导出指定字段或指定数据到文件中
			使用mysqldump把mysql数据库的数据导出到文件中还是挺方便的:比如说要导出baijunyao数据库: // mysqldump -u用户名 -p 数据库名 [表名]> 导出的文件名 m ... 
- 利用Apache commons-net 包进行FTP文件和文件夹的上传与下载
			首先声明:这段代码是我在网上胡乱找的,调试后可用. 需要提前导入jar包,我导入的是:commons-net-3.0.1,在网上可以下载到.以下为源码,其中文件夹的下载存在问题:FTPFile[] a ... 
- 总结jq的一些特效
			Jquery代码总结 1.轮播图: <script src="jquery-1.8.3.min.js"></script><script> ... 
- java多线程系列(七)---Callable、Future和FutureTask
			Callable.Future和FutureTask 前言:如有不正确的地方,还望指正. 目录 认识cpu.核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二)之对象变量 ... 
- ThinkSNS+ alpha.2 版本发布,功能抢先看!【社交系统研发日记六】
			今天的研发日记,我们不讲技术,我们来看看,社交系统TS+从今天开始全面内测开始,都发布了什么功能. 其实,alpha.1 早上打的 tag ,晚上因为增加了两个核心功能,所以又打了 alpha.2 t ... 
- 如何验证所做的AIX系统备份是否可用
			--如何验证所做的AIX系统备份是否可用 ----------------------------------2013/11/15 系统备份(mksysb)的介质可以是磁带,也可以是CD和DVD.想要 ... 
- Java范型
			泛型不用考虑对象的具体类型.优点在于,因为不用考虑对象的具体类型所以可以对一类对象执行一定的相同操作:缺点在于,因为没有考虑对象的具体类型所以就不能使用对象自带的接口函数.泛型的最佳用同是实现容器类. ... 
