您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp3.1.3学习笔记-第二天
发布时间:2017-04-10 13:13:19编辑:雪饮阅读()
默认过滤函数:
‘DEFAULT_FILTER’=>’inval’,
在使用i函数时若没有提供过滤函数就默认使用此处的,若此处也没有配置就使用
Htmlspecialchars
F函数:
可将数组写入到一个php文件中,引入此php文件即可得到return的数组。
$res=$db->select();
F('phiz',$res,'./Data/');
Ajax返回函数:
$this->ajaxReturn(array(‘status’=>0),’json’);
验证码的调用:
import('ORG.Util.Image');
Image::buildImageVerify(4,5,'png',180,125,'yzm');
从左到右参数依次是:
验证码位数,验证码组合类型(0-5),验证码图片后缀类型,验证码宽、验证码高、验证码的session元素名称
注意:验证码类生成的验证码在后端是以md5该验证码后存储于session中的。在当前控制器中的另外一个方法中可通过session获取到md5后的值
获取客户端ip地址:
get_client_ip()
数据库操作-更新数据:
M('user')->save($data);
跳转函数:
$this->redirect('Admin/Index');
控制器中的自动运行函数:控制器中的_initialize函数会自动运行
Public function _initialize(){
echo "auto";
}
注意:自动运行函数要在每个控制器中声明,这样就比较麻烦了,所以可以再当前项目的控制器文件夹中建立公共Common控制器,该控制器中建立自动运行函数,然后把需要自动运行此函数的其他控制器都来继承该公共控制器。
session_unset:
原始php自带函数:可以清除所有session会话变量,如果你需要清除某一个会话变量,应该使用unset($_SESSION['var']);
释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session
id
session_destroy():
原始php自带函数:
删除当前用户对应的session文件以及释放session
id,内存中的$_SESSION变量内容依然保留
Thinkphp中的session默认是自动开启的,可通过C('SESSION_AUTO_START')得到true的返回值,那么session_id()即可获取当前页面sessionid
C('SESSION_AUTO_START');
session_id();
将session存置数据库:
Session默认是储存在服务端的文件中的。
在项目配置文件中做如下配置可将session存置数据库:
'SESSION_TYPE'=>'Db',
建立session表:
CREATE TABLE think_session (
session_id varchar(255) NOT NULL,
session_expire int(11) NOT NULL,
session_data blob,
UNIQUE KEY `session_id` (`session_id`)
);
此时thinkphp所用session就会存储到该session表了。
将session存置redis:
当前项目配置文件中:
<?php
return array(
//'配置项'=>'配置值'
'SESSION_PREFIX'=>'sess_',//session前缀
'SESSION_TYPE'=>'Redis',
'REDIS_HOST'=>'127.0.0.1',
'REDIS_PORT'=>6379,
);
?>
另新建SessionRedis.class.php与SessionDb.class.php同路径下:
<?php
Class SessionRedis{
Private $redis;
Private $expire;
Public function execute(){
session_set_save_handler(
array(&$this,'open'),
array(&$this,'close'),
array(&$this,'read'),
array(&$this,'write'),
array(&$this,'destroy'),
array(&$this,'gc')
);
}
Public function open($path,$name){
$this->expire=C('SESSION_EXPIRE')?C('SESSION_EXPIRE') : ini_get('session.gc_maxlifetime');
$this->redis=new Redis();
return $this->redis->connect(C('REDIS_HOST'),C('REDIS_PORT'));
}
Public function close(){
return $this->redis->close();
}
Public function read($id){
$id=C('SESSION_PREFIX').$id;
$data=$this->redis->get($id);
return $data ? $data : '';
}
Public function write($id,$data){
$id=C('SESSION_PREFIX').$id;
$this->expire=intval($this->expire);
return $this->redis->set($id,$data,$this->expire);
}
Public function destroy($id){
$id=C('SESSION_PREFIX').$id;
return $this->redis->delete($id);
}
Public function gc($maxLifeTime){
return true;
}
}
?>
关键字词:thinkphp3.1.3,雪饮