2015.1写留言板的时用的 知识点和函数 --->总结
一:时间函数和uniqid()
1:uniqid():生成唯一的id, 无参数返回的字符串的长度为13,有参数为23
2:时间和时间戳相互转换的php函数
①:time() 返回当前unix的时间戳 microtime() 返回当前unix时间戳和微秒数
②:date('Y-m-d H:i:s', time()) 格式化一个本地时间/日期
③:strtotime() 将任何日期的英文文本的日期时间描述转化为unix时间戳
二:tp框架的跳转和重定向
1:页面跳转
①:success('提示信息', '跳转地址', '跳转时间'); 默认的跳转地址: $_SERVER['HTTP_REFERER'] 默认的等待时间:1秒
②:error('提示信息', '跳转地址', '跳转时间'); 默认的跳转地址: javascript:history.back(-1) 默认的等待时间:3秒
2:页面的重定向
redirect('URL地址','时间','提示信息') 仅仅想重定向一个指定的url地址,而不是某个模块的操作方法。 和U函数的用法一致。
3:U() 生成URL
定义规则:U('地址表达式', ['参数'], ['伪静态后缀'], ['显示域名']);
支持锚点
三:tp框架的模型定义(M,D 方法)
1:直接实例化
Model(['模型名'], ['数据表前缀'], ['数据库连接信息']); 都可选 大多数情况下无需传入任何参数即可实现实例化
连接信息支持三种格式
①:字符串定义
②:数组定义
③:配置定义
2:D方法实例化(实例化自定义模型类)
①:\Home\Model\UserModel 类不存在的时候 D方法会尝试实例化公共模块下面的 \Common\Model\UserModel 如果不存在就会实例化\Think\Model的基类
②:linux下,注意D方法实例化时模型名称的大小写
③:跨模块实例化模型类的时候,不支持自动加载公共模块的模型类
3:M方法实例化模型
①:支持跨库操作
②:默认直接实例化\Think\Model类, 实例化其他公共的模型类:$user = M('\Home\Model\COmmonModel:User', 'think_', 'db_config');
③:如果你的模型类有自己的业务逻辑,M方法是无法支持的,就算已经定义了具体的模型类,M方法实例化的时候会直接忽略掉
4:实例化空模型类(仅仅需要原生SQL查询)
①:new Model()
②:M()
D()和M()区别 D实例化具体的模型类,没有找到定义的模型类则会自动调用M方法
M是对数据表进行基本的CURD操作,由于不用加载具体的模型类,性能会更高,无需用户为每个数据表定义模型类
四:C() 和 I()
1:C('参数名称') 获取已经设置的参数值 尚未设置返回null
C('参数名称','新的参数值') 动态配置赋值仅对当前请求有效,不会对以后的请求造成影响 如:动态改变缓存有效期
2:I():获取系统变量和用户提交的数据
I('变量类型.变量名/修饰符', ['默认值'], ['过滤方法'], ['额外数据源']) 注意:变量修饰符是3.2.3版本新增
可以支持默认值, 方法过滤(htmlspecialchars: 预定义字符串转化为实体,strip_tags()函数:剥去HTML, XML, PHP标签), 获取整个变量类型