请求变量

~~~

use think\facade\Request;

Request::param('name');

Request::param();全部请求变量 返回数组

Request::param(['name', 'email']); 多个变量

Request::param('a','1') $a不存在使用默认值1

Request::param('username','','strip_tags'); 参数过滤 去掉html标签 htmlspecialchars转换成实体入库 strtolower小写

Request::header(); 请求头数组,支持单个 cookie

input("name");

Request::session();获取 $_SESSION 变量

Request::cookie();获取 $_COOKIE 变量

Request::server();获取 $_SERVER 变量

Request::env();返回env数组

Request::file();获取 $_FILES 变量

Request::baseUrl(); /index/index

Request::host(true); 域名:www.baidu.com,默认无参数包含端口:80

Request::url(1); 完整域名和地址 http://tp6.api.shanliwawa.top:80/index/index

Request::domain(1) http://tp6.api.shanliwawa.top

Request::time() 请求时间戳

Request::app() 应用名 index

Request::controller() 控制器 Index 参数true小写

Request::action() 操作 index 参数true 小写

Request::method(true); 请求类型获取 GET

isGet isPost isPut isDelete isAjax isMobile isHead 判断是否某种类型

Request::has('id','get'); 检测变量id是否存在

url('index/hello', ['id'=>5,'name'=>'李白'],'do'); http://tp6.api.shanliwawa.top/index/hello/李白.do?id=5

url('index/hello#aa'); 锚点

Cache::set('name', $value, 3600); 1小时后过期

Cache::get('name'); 获取缓存

多缓存类型配置

return [

// 缓存类型为File

'type' => 'redis',

// 全局缓存有效期(0为永久有效),开发下一定要设置-1 否在刷新后 还在

'expire'=> -1,

// 缓存前缀

'prefix'=> 'think',

// 缓存目录

'host' => '127.0.0.1',

];

return [

// 使用复合缓存类型

'type' => 'complex',

// 默认使用的缓存

'default' => [

// 驱动方式

'type' => 'file',

// 缓存保存目录

'path' => '../runtime/default',

],

// 文件缓存

'file' => [

// 驱动方式

'type' => 'file',

// 设置不同的缓存保存目录

'path' => '../runtime/file/',

],

// redis缓存

'redis' => [

// 驱动方式

'type' => 'redis',

// 服务器地址

'host' => '127.0.0.1',

],

];

use think\facade\Cache;

Cache::store('file')->set('name','123',0);

$v = Cache::store('redis')->get('name'); Cache::store('default')->get('name');文件缓存

Cache::delete('name');

Cache::clear();

Cache::set('name', [1,2,3]);

Cache::push('name', 4);

Cache::remember('start_time', time()); 不存在则创建

Cache::inc('name',1); 自增1

Cache::dec('name',1); 自减1

$redis = Cache::handler(); redis对象

配置redis session

return [

'type' => 'redis',

'prefix' => 'think',

'auto_start' => true,

// redis主机

'host' => '127.0.0.1',

// redis端口

'port' => 6379,

// 密码

'password' => '',

]

session('name', ['thinkphp']); 设置支持字符串 数组

session('name');获取

session('name', null);删除

session(null);清空

cookie('name', 'value', 3600); 设置不支持数组,序列化后存储

cookie('name');

cookie('name', null);

cookie('think_lang','en-us');//设置语言类型

lang('add user error');//翻译

config('cache.type') 读取配置

~~~

验证

~~~

{:token_field()} 模板中输出令牌

{:token_meta()} ajax提交

$.ajaxSetup({

headers: {

'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')

}

});

Route::post('blog/save','blog/save')->token(); 路由中使用验证

think\facade\Validate

$rule = [

'name' => 'require|max:25',

'age' => 'number|between:1,120',

'email' => 'email',

];

$msg = [

'name.require' => '名称必须',

'name.max' => '名称最多不能超过25个字符',

'age.number' => '年龄必须是数字',

'age.between' => '年龄只能在1-120之间',

'email' => '邮箱格式错误',

];

$data = [

'name' => 'thinkphp',

'age' => 10,

'email' => 'thinkphp@qq.com',

];

$validate = Validate::rule($rule)->message($msg);

$result = $validate->check($data);

if(!$result) {

dump($validate->getError());

}

~~~

路由

~~~

Route::get('new/','News/read'); // 定义GET请求路由规则

Route::post('new/','News/update'); // 定义POST请求路由规则

Route::put('new/:id','News/update'); // 定义PUT请求路由规则

Route::delete('new/:id','News/delete'); // 定义DELETE请求路由规则

Route::any('new/:id','News/read'); // 所有请求都支持的路由规则

->allowCrossDomain();跨域

~~~

输出响应

~~~

$data=['code'=>200,'msg'=>'信息提示','list'=>['中国']];

json($data);

jsonp($data);

xml($data);

redirect('http://www.thinkphp.cn');

redirect('/index/hello/name'); //站内跳转

download('./static/2.xlsx'); 下载

~~~

数据库

~~~

use think\facade\Db;

$rs =Db::name('user')->where('id',1)->find(); 查询一条记录 name不含前缀

$rs =Db::table('ims_user')->where('sex', 2)->select(); 多条数据 table含前缀

$rs1 =Db::name('user')->where('id', 1)->value('name'); 查询某个字段值

$rs =Db::table('ims_user')->where('sex', 2)->column('name,id','id'); 返回name,id列,后面是key

$userId = Db::name('user')->insertGetId($data);//插入数据返回id

Db::name('user')->limit(100)->insertAll($data); 插入多条数据,分每次100

Db::name('user')->where('id', 1)->update(['name' => 'thinkphp']); 更新

Db::table('think_user')->delete(1);

Db::table('think_user')->delete([1,2,3]);

Db::table('think_user')->where('id',1)->delete();

Db::name('user')->delete(true);//清空数据

where('id','<>',1) 不等于1 > >= like

where("id=:id and username=:name", ['id' => 1 , 'name' => 'thinkphp'])

field('id,title,content') 指定字段

limit(10,25) 第十条开始25条 单数字返回数据条数

page(1,10) 第一页十条

order(['id'=>'desc','sex'=>'desc']) 排序

group('user_id,test_time') 分组

count() max('id') min() avg() sum() 聚合函数

whereTime('birthday', '>=', '1970-10-1') 支持< =

whereTime('create_time','-2 hours') 查询2小时

whereBetweenTime('create_time', '2017-01-01', '2017-06-30') 查询时间段

whereYear('create_time') 今年 whereYear('create_time','2018') last year 去年

whereMonth('create_time') last month上月 2018-06 具体月份

whereWeek('create_time') last week 上周

whereDay('create_time')今天 yesterday昨天 2018-11-1具体

Db::query("select * from think_user where status=1"); 原生查询

Db::execute("update think_user set name='thinkphp' where status=1");//更新插入删除

Db::query("select * from think_user where id=? AND status=?", [8, 1]);//绑定

$list = Db::name('user')->where('status',1)->paginate(10); 分页每页10条

~~~

模型

定义全局常量

~~~

define('__URL__',\think\facade\Request::domain(1)); http://tp6.api.shanliwawa.top

define('__ROOT__',\think\facade\app::getRootPath()); 系统根目录 C:\www\tp6\

define("PRE",config('database.prefix')); 表前缀

~~~

绝对路径获取

~~~

\think\facade\app::getRootPath() 根目录C:\www\tp6\

\think\facade\app::getAppPath() 应用路径 C:\www\tp6\app\index\

\think\facade\app::getConfigPath() 配置路径C:\www\tp6\config\

\think\facade\app::version() 核心版本

~~~

模板视图

~~~

use think\facade\View;

View::assign([

'name' => 'ThinkPHP',

'email' => 'thinkphp@qq.com'

]);

View::assign('data',[

'name' => 'ThinkPHP',

'email' => 'thinkphp@qq.com'

]);

View::fetch('index');

助手函数

view('index', [

'name' => 'ThinkPHP',

'email' => 'thinkphp@qq.com'

]);

模板输出

{$name}

{$data.name} 等价 {$data['name']}

{:dump($data)} 使用函数 :开头

{$user.nickname|default="这家伙很懒,什么也没留下"}

{$Think.cookie.name} // 输出$_COOKIE['name']变量

{$Think.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量

{$Think.session.user_id} // 输出$_SESSION['user_id']变量

{$Think.get.page} // 输出$_GET['page']变量

{$Request.param.name} 获取name

{$data.name|raw} 不转义输出

{$data.create_time|date='Y-m-d H:i'}

{literal}

Hello,{$name}!原样输出

{/literal}

{load href="/static/js/common.js,/static/js/common.css" /} 加载js,css

{php}echo 'Hello,world!';{/php}

{/* 注释内容 */ } 或 {// 注释内容 }

{include file="public/header" /} 模板包含

{include file="Public/header" title="$title" keywords="开源WEB开发框架" /} 传入参数

{foreach $list as $key=>$vo }

{$vo.id}:{$vo.name}

{/foreach}

{for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" }

{/for}

{if 表达式}value1

{elseif 表达式 /}value2

{else /}value3

{/if}

~~~

记录日志

~~~

log.php 可添加 'json'=>1 表示json格式

trace("日志信息")

app.php中

'app_trace' => true,

trace.php改为默认html

'type' => 'Console',

~~~

上传

~~~

$file = request()->file('image');

移动到框架应用根目录/uploads/ 目录下

$info = $file->move( '../uploads');

if($info){

成功上传后 获取上传信息

输出 jpg

echo $info->getExtension();

输出 20160820/42a79759f284b767dfcb2a0197904287.jpg

echo $info->getSaveName();

输出 42a79759f284b767dfcb2a0197904287.jpg

echo $info->getFilename();

}else{

上传失败获取错误信息

echo $file->getError();

}

多文件xphr

foreach($files as $file){}

验证,生成带md5文件名

$info = $file->rule('md5')->validate(['size'=>15678,'ext'=>'jpg,png,gif'])->move( '../uploads');

~~~

tp6 获取session_TP6文档相关推荐

  1. python xpath提取转码_python-xpath获取html文档的部分内容

    有些时候我在们需要的用正则提取出html中某一个部分的文字内容,如图: 获取dd部分的html文档,我们要通过它的一个属性去确定他的位置才可以拿到他这个部分我们可以看到他的这个属性class='row ...

  2. 使用FTP获取RFC文档

    连接FTP服务器主机: ftp FTP.RFC-EDITOR.ORG 21(21是FTP中控制连接的端口号) 输入用户名:anonymous 输入密码:name@host.domain RFC文档是放 ...

  3. [开发笔记]-C#获取pdf文档的页数

    [操作pdf文档]之C#判断pdf文档的页数: /// <summary>/// 获取pdf文档的页数/// </summary>/// <param name=&quo ...

  4. JS-DOM-节点-获取元素-文档结构-元素的属性

    JS-DOM-节点-获取元素-文档结构-元素的属性 1 回顾 1.1 内置构造函数 Function Function 的实例的属性和方法:lengthcall()applay()bind() 1.2 ...

  5. URL Scheme获取帮助文档

    URL Scheme获取帮助文档 方式一:小程序管理后台工具生成 一.生成步骤 1. 地址 微信公众平台 2. 扫码登录 3. 登陆后进入首页 「工具」(在右上角)–「生成 URL Scheme」 4 ...

  6. js从服务器获取word文档,javascript - 使用Office.js API将Word文档(.docx)保存到后端服务器 - 堆栈内存溢出...

    我在将byte数组(使用Office.js从Microsoft Office的任务窗格中获取)保存到Word文档文件(在服务器端)时遇到了一些麻烦. 这就是我在做什么: 我正在使用此库获取Word文档 ...

  7. html5在线显示word文档,JS实现获取word文档内容并输出显示到html页面示例

    本文实例讲述了js实现获取word文档内容并输出显示到html页面.分享给大家供大家参考,具体如下: title var w = new activexobject('word.application ...

  8. java 获取office文件页数_jacob如何获取word文档的页码

    ActiveXComponent app = new ActiveXComponent("Word.Application"); //启动word String inFile = ...

  9. php操作Word之com组件-获取word文档页码和更新目录

    此文章包含:   1.win10系统中:com组件配置和为什么找不到 Microsoft Word 97 - 2003 文档 的解决方法   2.调用com获取word文档总页码   3.调用com自 ...

最新文章

  1. “老赖”罗永浩:就算“卖艺”也会还债!孙宇晨:我买!
  2. Android异步消息处理机制 全解析
  3. 从海外IDC四大标签来看国内IDC公司估值差异问题
  4. java list 比较_Java中List的五种去重方法及效率对比,你都用对了吗?
  5. pandas中dataframe的索引使用和转换为array
  6. linux文件系统管理知识导图,Linux磁盘和文件系统管理基础知识自测
  7. oracle 新增加控制文件,Oracle增加控制文件副本
  8. Android进阶: 10分钟实现NDK-JNI 开发教程
  9. 一个简单的 javascript 中的正则表达式例子
  10. 20200903尝试解决屏幕录像专家在WIN10的2004版本下录音有噪声+无声的问题
  11. 图片相似度计算-模板匹配
  12. 万维c语言作业,万维考试系统-c语言题库-含题目-程序设计题导出-113道.doc
  13. 液相色谱质谱联用市场现状及未来发展趋势
  14. html 加爱心符号,爱心符号大全
  15. 在cmd中编译C语言方法
  16. 淘宝开店首页装修教程分享
  17. Thunar文件管理器新增一个使用root权限打开当前目录或者文件夹
  18. 工业互联网产业链全景图深度分析
  19. 极客学院 Android 系统体系教程
  20. 在Origin绘图和表格中插入Latex公式

热门文章

  1. 常用数据库及默认端口
  2. matlab 2015 积分,Matlab中如何求解积分?
  3. 计算机高级语言中数据的表现形式
  4. Linux驱动开发: 杂项字符设备
  5. Hinton 2006 science 文章 RBM 预训练 AutoEncoder
  6. redis-manger管理平台
  7. 利用css画三角箭头图标
  8. C语言程序设计笔记(浙大翁恺版) 第九周:指针
  9. ionic:点击某个商品名称,跳转到相应的商品详情页面
  10. FreeRTOS个人笔记-初谈CM3内核