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是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...
随机推荐
- php与MySQL(基本操作)
PHP连接 MySQL 在我们访问 MySQL 数据库前,我们需要先连接到数据库服务器,连接服务器,我们使用mysqli_connect()函数. 在使用这个函数之前,我们首先来看一下这个函数的语法: ...
- Go语言string,int,int64 ,float转换
(1)int转string s := strconv.Itoa(i)等价于s := strconv.FormatInt(int64(i), 10) (2)int64转string i := int64 ...
- Django--Uploaded Files以及Handlers
一.表示已经上传的文件(uploaded files)的类 表示已经上传的文件的类有下面几个: class UploadedFile 在文件上传的期间,实际的文件数据被存储在request.FILES ...
- js模块加载之AMD和CMD
当我写这篇文章的时候,sea.js已经逐渐退出历史的舞台,详细链接.不过任何新事物的出现都是对旧事物的取其精华,去其糟粕,所以了解一下以前模块的加载也是一件好事. js模块化的原因自不比多说,看看HU ...
- win10下安装python2与python3以及pip共存
一 分别安装python2和python3 注意: 安装时记得勾选 Add Python.exe to Path 二 安装pip Python3最新版本有pip,无需安装 Python2: 下载pip ...
- 解决无线网络连接出现黄色感叹号---win10
今天使用公司的电脑,这个电脑是另一位同事用过的,然后到我这里就连不上网了.然后把自己解决的方法记录一下: 开始运行输入以下命令来重置IP. 打开运行输入:cmd 在命令窗口中输入:ipconfig / ...
- app中rem算法
第一次用vue做APP被rem坑惨了 下面贴出 rem 的算法及使用方法 在自定义js中定义函数 export default { install: function(Vue, options) { ...
- Orchard 学习
https://github.com/OrchardCMS/Orchard 源码下载 http://www.orchardch.com/ 中文介绍网站
- setInterval()的时间参数无法随参数的变化而变化
2017-04-18 写了个随机抽奖的小案例,打算随机跳动十次,每次变化的时间越来越长,也就是跳动的速度越来越慢,结果发现setInterval的时间参数并不会随着变化. <!--案例的结构如下 ...
- 终端管理软件tmux
tmux - terminal multiplexer 我们在服务器上进行操作,写代码,测试,运行服务,都会用到这样的工具,以前使用GNU screen,但是在最近使用了tmux之后,我觉得tmux真 ...