Thinkphp
gzxiaomei
这个作者很懒,什么都没留下…
展开
-
thinkphp5 Session使用方法
ThinkPHP采用think\Session类提供Session功能支持。Session初始化在ThinkPHP5.0中使用\think\Session类进行Session相关操作,Session会在第一次调用Session类的时候按照配置的参数自动初始化,例如,我们在应用配置中添加如下配置:'session' => [ 'prefix' => 'think', 'type' => '', ...原创 2020-10-14 10:55:44 · 1624 阅读 · 0 评论 -
thinkphp5 Cookie使用方法
ThinkPHP采用think\Cookie类提供Cookie支持。基本操作初始化// cookie初始化Cookie::init(['prefix'=>'think_','expire'=>3600,'path'=>'/']);// 指定当前前缀Cookie::prefix('think_');支持的参数及默认值如下:// cookie 名称前缀'prefix' => '',// cookie 保存时间'expire' => 0,// ...原创 2020-10-14 10:51:04 · 2385 阅读 · 0 评论 -
thinkphp5 缓存几种调用方式
1,缓存支持采用驱动方式,所以缓存在使用之前,需要进行连接操作,也就是缓存初始化操作。$options = [ // 缓存类型为File 'type' => 'File', // 缓存有效期为永久有效 'expire'=> 0, //缓存前缀 'prefix'=> 'think', // 指定缓存目录 'path' => “www.djznrobot.com”.'runtime/cache/',];...原创 2020-10-14 10:48:06 · 540 阅读 · 0 评论 -
thinkphp5 网页分页总结
ThinkPHP5.0内置了分页实现,要给数据添加分页输出功能在5.0变得非常简单,可以直接在Db类查询的时候调用paginate方法:// 查询状态为1的用户数据 并且每页显示10条数据$list = Db::name('user')->where('status',1)->paginate(10);// 把分页数据赋值给模板变量list$this->assign('list', $list);// 渲染模板输出return $this->fetch(“www.djz原创 2020-10-14 10:43:54 · 182 阅读 · 0 评论 -
thinkphp5图片上传命名规则
1,rule方法中传入函数或者方法// 获取表单上传文件 例如上传了001.jpg$file = request()->file('image');// 移动到服务器的上传目录 并且使用uniqid规则$file->rule('uniqid')->move('/home/www/upload/');生成的文件名类似于:www.dc3688.com /home/www/upload/573d3b6d7abe2.jpg2,保留原文件名称// 获取表单上传文件 例如上传了001.原创 2020-10-13 18:20:19 · 908 阅读 · 0 评论 -
thinkphp5 图片上传验证大小和类型
支持对上传文件的验证,包括文件大小、文件类型和后缀:public function upload(){ // 获取表单上传文件 例如上传了001.jpg $file = request()->file('image'); // 移动到框架应用根目录www.djznrobot.com /public/uploads/ 目录下 $info = $file->validate(['size'=>15678,'ext'=>'jpg,png,gif'])-&...原创 2020-10-13 18:14:43 · 2542 阅读 · 0 评论 -
thinkphp5 多图片上传用法
thinkphp5 多图片上传用法<form action="/index/index/upload" enctype="multipart/form-data" method="post"><input type="file" name="image[]" /> <br><input type="file" name="image[]" /> <br><input type="file" name="image[]" />..原创 2020-10-13 18:11:44 · 350 阅读 · 0 评论 -
thinkphp5 图片单文件上传
假设表单代码如下:<form action="/index/index/upload" enctype="multipart/form-data" method="post"><input type="file" name="image" /> <br><input type="submit" value="http://www.djznrobot.com/" /></form>然后在控制器中添加如下的代码:public fu...原创 2020-10-13 18:08:09 · 148 阅读 · 0 评论 -
thinkphp5 总结变量调试几种
输出某个变量是开发过程中经常会用到的调试方法,除了使用php内置的var_dump和print_r之外,ThinkPHP框架内置了一个对浏览器友好的dump方法,用于输出变量的信息到浏览器查看。用法:Debug::dump($var, $echo=true, $label=null)或者dump($var, $echo=true, $label=null)如果echo参数为false 则返回要输出的字符串使用示例:$blog = Db::name('blog')->where.原创 2020-10-12 16:56:33 · 583 阅读 · 0 评论 -
thinkphp5 性能调试方法
开发过程中,有些时候为了测试性能,经常需要调试某段代码的运行时间或者内存占用开销,系统提供了think\Debug类可以很方便的获取某个区间的运行时间和内存占用情况。 例如:Debug::remark('begin');// ...其他代码段Debug::remark('end');// echo "www.benchicnc.com"// 进行统计区间echo Debug::getRangeTime('begin','end').'s';助手函数系统还提供了助手函数debug用于完成相原创 2020-10-12 16:53:34 · 427 阅读 · 0 评论 -
thinkphp5 抛出异常几种方式
1,手动抛出异常可以使用\think\Exception类来抛出异常// 使用think自带异常类抛出异常throw new \think\Exception('异常消息', 100006);如果不使用think异常类,也可以定义自己的异常类来抛出异常throw new \foobar\Exception('异常消息');也可以使用系统提供的助手函数来简化处理:exception('异常消息', 100006);// 使用自定义异常类exception('异常消息', 100006原创 2020-10-12 16:51:05 · 2815 阅读 · 1 评论 -
thinkphp5 日志错误级别和用法
ThinkPHP对系统的日志按照级别来分类,并且这个日志级别完全可以自己定义,系统内部使用的级别包括:log常规日志,用于记录日志 error错误,一般会导致程序的终止 notice警告,程序可以运行但是还不够完美的错误 info信息,程序输出信息 debug调试,用于调试信息 sqlSQL语句,用于SQL记录,只在数据库的调试模式开启时有效系统提供了不同日志级别的快速记录方法,例如:Log::error('错误信息');Log::info('日志信息');// 和下面的...原创 2020-10-12 16:13:01 · 2021 阅读 · 0 评论 -
thinkphp5日志驱动和日志写入
1,日志驱动日志可以通过驱动支持不同的方式写入,默认日志会记录到文件中,系统已经内置的写入驱动包括 File、Socket,如果要临时关闭日志写入,可以设置日志类型为Test即可,'log' => [ // 可以临时关闭日志写入 'type' => 'test',],'log' => [ // 日志记录方式,支持 file socket 'type' => 'File', //日志保存目录 'path' =>...原创 2020-10-12 16:09:37 · 1060 阅读 · 0 评论 -
thinkphp5 伪静态后出现No input file specified.
第一种解决方法在入口文件同级的 .htaccess 文件中的RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]在默认情况下可能会导致访问页面报:No input file specified.将上面一句修改为:RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]后刷新页面就可以正常访问了...原创 2020-10-05 17:44:57 · 208 阅读 · 0 评论 -
thinkphp5 查询事件
增加了数据库的CURD操作事件支持before_select select查询前回调before_find find查询前回调after_insert insert操作成功后回调after_update update操作成功后回调after_delete delete操作成功后回调注册事件使用下面的方法注册数据库查询事件Query::event('after_insert','callback');Query::event('before_select'...原创 2020-10-05 10:57:54 · 585 阅读 · 0 评论 -
thinkphp5 不用服务器URL重写
可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考:[ Apache ]httpd.conf配置文件中加载了mod_rewrite.so模块AllowOverride None 将None改为 All把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下<IfModule mod_rewrite.c>Options +FollowSymlinks -MultiviewsRewriteEngine onRewriteCond %{R原创 2020-10-05 10:54:04 · 178 阅读 · 0 评论 -
thinkphp5 模板渲染三种方式
1,fetch('[模板文件]'[,'模板变量(数组)'])方式// 不带任何参数 自动定位当前操作的模板文件return $this->fetch();2,写入模版文件如果没有按照模板定义规则来定义模板文件(或者需要调用其他控制器下面的某个模板),可以使用:// 指定模板输出return $this->fetch('edit');表示调用当前控制器下面的edit模板return $this->fetch('member/read');表示调用Member控制.原创 2020-10-05 10:50:43 · 1548 阅读 · 0 评论 -
thinkphp5 视图实例化输出
视图功能由\think\View类配合视图驱动(模板引擎)类一起完成,目前的内置模板引擎包含PHP原生模板和Think模板引擎。1,fetch 渲染模板输出2,display 渲染内容输出3,assign 模板变量赋值5,engine 初始化模板引擎如果需要调用View类的其它方法,可以直接使用$this->view对象:助手函数如果你只是需要渲染模板输出的话,可以使用系统提供的助手函数view,可以完成相同的功能:return view('w...原创 2020-10-05 10:44:56 · 346 阅读 · 0 评论 -
thinkphp5 路由定义和规则
路由注册可以采用方法动态单个和批量注册,也可以直接定义路由定义文件的方式进行集中注册。动态注册路由定义采用\think\Route类的rule方法注册,通常是在应用的路由配置文件application/route.php进行注册,格式是:Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');例如注册如下路由规则:use think\Route;// 注册路由到index模块的News控制器的read操作Route::rule('原创 2020-10-05 10:38:58 · 1284 阅读 · 0 评论 -
thinkphp5 请求session和cookie用法
thinkphp5 请求session和cookie用法1,session 用法use Thinkphp\session设置 Session::set("name",'www.xiaohonghuaw.com');获取Session::get(参数);销毁Session::set(‘name’,null)2.cookie用法use Thinkphp\cookie设置 Cookie::set(参数);获取Cookie::get(参数);销毁Cooki...原创 2020-10-04 08:53:36 · 440 阅读 · 0 评论 -
thinkphp5 请求伪装用法
支持请求类型伪装,可以在POST表单里面提交_method变量,传入需要伪装的请求类型<form method="post" action=""> <input type="text" name="name" value="www.benchicnc.com"> <input type="hidden" name="_method" value="PUT" > <input type="submit" value="提交"><...原创 2020-10-04 08:47:49 · 386 阅读 · 0 评论 -
thinkphp5 get请求缓存
请求缓存仅对GET请求有效,有两种方式可以设置请求缓存:路由参数可以在路由规则里面定义cache参数开启当前路由规则的请求缓存,例如:// 定义GET请求路由规则 并设置3600秒的缓存Route::get('new/:id','News/read',['cache'=>3600]);第二次访问相同的路由地址的时候,会自动获取请求缓存的数据响应输出,并发送304状态码。默认请求缓存的标识为当前访问的pathinfo地址,可以定义请求缓存的标识,如下:// 定义GET请求路由规则原创 2020-10-03 12:40:48 · 707 阅读 · 0 评论 -
thinkphp5 参数绑定用法
方法参数绑定是把URL地址(或者路由地址)中的变量作为操作方法的参数直接传入操作方法参数绑定按名称绑定参数绑定方式默认是按照变量名进行绑定,例如,我们给Blog控制器定义了两个操作方法read和archive方法,由于read操作需要指定一个id参数,archive方法需要指定年份(year)和月份(month)两个参数,那么我们可以如下定义:namespace app\index\Controller;class Blog{ public function read($id)...原创 2020-10-03 12:27:28 · 549 阅读 · 0 评论 -
thinkphp5 方法注入和属性注入
1,方法注入Request请求对象中添加自己的方法,可以使用Request对象的方法注入功能// 通过hook方法注入动态方法Request::hook('user','getUserInfo');function getUserInfo(Request $request, $userId){ // 根据$userId获取用户信息http://www.djznrobot.com/sitemap.xml return $info;}public function ind...原创 2020-10-03 12:21:26 · 849 阅读 · 0 评论 -
thinkphp5 请求信息request
如果要获取当前的请求信息,可以使用\think\Request类,$request = Request::instance();$request = Request::instance();// 获取当前域名echo 'domain: ' . $request->domain() . '<br/>';// 获取当前入口文件echo 'file: ' . $request->baseFile() . '<br/>';// 获取当前URL地址 不含域名ec原创 2020-10-02 12:18:40 · 412 阅读 · 0 评论 -
thinkphp5 路由模式几种方式
thinkphp5 路由模式几种方式一、普通模式关闭路由,完全使用默认的PATH_INFO方式URL:'url_route_on' => false,路由关闭后,不会解析任何路由规则,采用默认的PATH_INFO 模式访问URL:http://www.dinghe866.com/index.php/module/controller/action/param/value/...二、混合模式开启路由,并使用路由定义+默认PATH_INFO方式的混合:'url_route_o..原创 2020-10-01 14:26:56 · 672 阅读 · 0 评论 -
Thinkphp5.0 批量产品复制功能设计
Thinkphp5.0 批量产品复制功能设计1,前端页面设计2,后台程序设计<a class="item-copy" data-id="<?= $item['goods_id'] ?>" onclick="getpass(<?= $item['goods_id'] ?>)"> 复制 </a>js// 元素 function getpass(arra){ var mymessage...原创 2020-09-15 16:37:21 · 410 阅读 · 0 评论 -
ShopNC xunsearch全文索引 linux安装全过程
全文索引可以减轻服务器的压力,ShopNC自带全文索引 ShopNC xunsearch全文索引 linux安装全过程1.运行下面指令下载讯搜和解压讯搜wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2tar -xjf xunsearch-full-latest.tar.bz22,执行安装脚本,...原创 2019-10-15 09:22:44 · 226 阅读 · 0 评论 -
tar.bz2解压报错误 Error is not recoverable: exiting now
最近把网站加一个全文索引,按照案例一步步测试,测试第二部出现错误,tar.bz2解压报错误 Error is not recoverable: exiting now,原因是未安装bzip导致的。# lsapcu-panel56u-4.0.11-2.ius.centos7.noarch.rpm apr15u-1.5.2-1.ius.centos7.x86_64.rpm ius-rel...原创 2019-10-14 16:52:31 · 1654 阅读 · 0 评论 -
Thinkphp URL模式设置和每个模式的区别
在营销推广的过程中,域名的网站后面的长短是多人很注意的,越短越好,但是Thinkphp域名的参数非常长,普通模式就更长了,如何改短呢,ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,1,设置URL模式URL模式 URL_MODEL设置 普通模式 0 PATHINFO模式 1 REWRITE模式 2 兼容...原创 2018-09-06 13:52:09 · 257 阅读 · 0 评论 -
Thinkphp 总结查询几种方式
在网站里面功能都是取出数据,这时候用到查询语句,select() 方法,也有用find(),下面详细说说查询几种方式1,使用字符串作为查询条件$User = M("User"); // 实例化User对象$User->where('type=1 AND status=1')->select(); 2,使用数组作为查询条件$User = M("User"); // ...原创 2018-09-28 16:27:07 · 185 阅读 · 0 评论 -
Thinkphp 自动完成定义及用法
在创建数据的时候,我们要对数据进行处理,比如md5加密,数据自增,时间转换,字符串转换,都可以在这一步进行,这就是自动完成。1,定义 模型类定义_auto属性 namespace Home\Model;use Think\Model;class UserModel extends Model{ protected $_auto = array ( ...原创 2018-10-06 21:29:15 · 451 阅读 · 0 评论 -
Thinkphp 如何自动验证及验证规则
在添加数据或者创建数据的时候,我们一般对数据进行处理,ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证。 1,自动验证的用法namespace Home\Model;use Think\Model;class UserModel extends Model{ protected $_validate = array...原创 2018-10-06 21:23:48 · 1332 阅读 · 0 评论 -
Thinkphp 字段映射用法及作用
在填写表单的时候,为了不让攻击网站,为了安全起见,ThinkPHP的字段映射功能可以让你在表单中隐藏真正的数据表字段,而不用担心放弃自动创建表单对象的功能。1,创建数据namespace Home\Model;use Think\Model;Class UserModel extends Model{ protected $_map = array( ...原创 2018-10-06 21:09:11 · 1996 阅读 · 1 评论 -
Thinkphp 多文件上传表单写法及实操
在做图片站点的时候,产品图片那里要上传多张图片,这时候要用到多文件上传,下面说说Thinkphp 多文件上传表单写法及实操1,多文件表单写法 <form action="__URL__/upload" enctype="multipart/form-data" method="post" ><input type="text" name="name"原创 2018-10-05 21:32:31 · 650 阅读 · 0 评论 -
Thinkphp 单文件上传表单及上传操作
在产品开发过程中,图片上传或者文件上传是必须的,那么我们怎么操作好文件呢,Thinkphp 单文件上传表单及上传操作1,上传表单 <form action="__URL__/upload" enctype="multipart/form-data" method="post" ><input type="text" name="name" />原创 2018-10-05 21:25:51 · 1765 阅读 · 0 评论 -
Thinkphp Image类图像处理用法
上传图片后,我们要对图片进行处理,使用Think\Image类进行图像处理功能,支持Gd库和Imagick库,包括对GIf图像处理的支持1,实例化,打开一张图片 $image = new \Think\Image(); $image->open('./product.jpg');2,获取图像信息$image = new \Think\Image(); $ima...原创 2018-10-05 21:20:32 · 7770 阅读 · 0 评论 -
Thinkphp 表达式如何查询和写法
在thinkphp中都是用连贯操作,那么Thinkphp 表达式如何查询和写法,下面说说各自表达式的查询的用法1,等于 eq $map['id'] = array('eq',100);2,不等于(<>)neq $map['id'] = array('neq',100);3,大于(>) gt $map['id'] = ar...原创 2018-09-28 16:37:40 · 471 阅读 · 0 评论 -
ThinkPHP 表单令牌设置及用法
thinkphp效防止表单的重复提交等安全防护,创建了一个表单令牌的方式,下面讲述令牌的设置及用法。1,设置'TOKEN_ON' => true, // 是否开启令牌验证 默认关闭'TOKEN_NAME' => '__hash__', // 令牌验证的表单隐藏字段名称,默认为__hash__'TOKEN_TYPE' =>...原创 2018-10-07 18:06:45 · 1231 阅读 · 1 评论 -
Thinkphp 什么是XSS攻击
安全是每个站点的必备的,特别一些大流量的网站最容易攻击,XSS(跨站脚本攻击)可以用于窃取其他用户的Cookie信息,下面提高一些解决方案。 直接过滤所有的JavaScript脚本; 转义Html元字符,使用htmlentities、htmlspecialchars等函数; 系统的扩展函数库提供了XSS安全过滤的remove_xss方法; 新版对URL...原创 2018-10-07 18:11:00 · 289 阅读 · 0 评论