最近在用thinkphp5开发的时候有个获取客户端ip的需求,可能是thinkphp3用的多了,没多想直接写了个$ip=get_client_ip(),结果很自然的就报错了呗。 经过查看手册发现thinkphp5已经取消了这个函数,在thinkphp5里面使用thinkRequest类获取当前请求信息,包括当前请求ip,具体用法如下: $request = ...
在thinkphp3中,where方法传入数组非常强大,可以组合任何形式的复杂查询条件,示例如下: $where['name'] = array('like', '%www.02405.com%'); $where['title'] = array('like','%ww...
做项目中有文档下载的需求,其实thinkphp完整版本内置了http类,运用该类我们可以轻易的实现httpdownload方法,具体代码如下: //下载单个文件 function httpdownload($id=null,$file=null){ $http=new OrgNetHttp();//创建http类的实例 $filepath='./Up...
1今天在部署一个ThinkPHP5开发的网站时,把网站根目录指向到public目录下,结果运行后产生以下错误 Warning: require(): open_basedir restriction in effect. File(/www/wwwroot/xxx/thinkphp/start.php) is not within the allowed pa...
1ThinkPHP5提示variable type error: array是因为在ThinkPHP5中不允许直接访问控制器时,通过return方法直接返回数组。 出现这个错误时,使用json函数处理以下返回的数据即可,如: $data = [...]; return json($data);
ThinkPHP5.0.1版本开始增加了扩展配置目录的概念,在应用配置目录或者模块配置目录下面增加extra子目录,下面的配置文件都会自动加载,无需任何配置。 这极大的方便了我们进行扩展配置,比如在application/extra目录下面创建一个web.php文件,内容如下:
在thinkphp5模型的查询中,一般有两种方式:数组方式和闭包方式,相对于数组方式只能定义查询条件,闭包方式可以支持更多的连贯操作,包括排序、数量限制等。 那么我们在使用闭包方式要怎么传入参数呢?具体代码如下: 普通闭包查询: $items = ItemModel::all(function($query){$query->order('sort&...
ThinkPHP5中volist标签调用函数的方法如下: 调用方法: {volist name=":funname('参数')" id="data"} {$data} {/volist} 示例代码: 模板文件代码 {volist name=":majorList()" id="data"} {$data} {/volist} 公共函数(com...
ThinkPHP5路由别名定义无效,route.php文件定义如下: return [ 'admin' => 'admin/Index/index', 'admin/login' => 'admin/Login/index', 'admin/logout'...
由于TP5.1取消了Loader和vendor两个助手函数, 我们使用extend加载不带命名空间的第三方类,具体如下。 1、下载phpqrcode.php,重命名为QRcode.php。 2、把QRcode.php放到extendphpqrcode目录下,完整路径为extendphpqrcodeQRcode.php。 3、在QRcode.php第一行增加命...
1ThinkPHP5开发的网站发布到Nginx服务器后,发现访问所有页面都报404错误,经过查阅官方文档发现,ThinkPHP5的URL重写需要PATHINFO,而Nginx默认不支持PATHINFO,我们可以通过在Nginx.conf中配置转发规则实现: 将下面代码加入到你的Nginx配置文件Nginx.conf中后,刷新网站即可。 location / {...
在TP5中有两个嵌套的volist循环,采用的是关联数组,怎样在循环内部分别获取外层volist的Key和内层volist的key值? 解决方法:采用tp5中的ASSIGN标签即可,ASSIGN标签用于在模板文件中定义变量,具体用法如下: {volist name='$list' id='user' key='k...
1ThinkPHP5动态创建数据表方法: public function ceshic(){ $sql = " CREATE TABLE IF NOT EXISTS `think_test`( `id` int(8) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NO...
thinkphp可以通过伪静态去掉index.php,但是最近在phpstudy(php5.4)中使用thinkphp5时,访问重写的路径会报错:No input file specified,原因是官方.htaccess文件中的重写规则在以apache fastcgi方式运行的php5.4及以上版本中无效。解决方案如下: 将官方默认的重写规则: Rewri...
1最近在做项目的时候需要生成pdf文件,网上搜索了一下php中TCPDF插件功能强大也比较流行,因此选择了这款插件,不过网上的教程基本都是基于ThinkPHP 3版本的,并不适用于ThinkPHP5,经过一番琢磨成功在ThinkPHP5上使用TCPDF,具体流程如下: 1.通过Composer下载最新版TCPDF,切换到程序根目录运行如下命令(Windows下...
在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面。ThinkPHP5的thinkController类内置了两个跳转方法success和error,用于页面跳转提示。 我们可以很方便的通过success和error方法进行跳转,两个方法的返回值格式如下: {code: 1, msg: "新增案卷...
3最近把一个thinkphp5开发的网站上传到服务器后发现中文乱码,只要出现中文乱码那就肯定是编码错误,然而检查发现thinkphp5默认是采用utf8编码的,模板文件和程序文件的编码也都是utf8无bom头格式,数据库编码也是utf8编码,可以说都是正常的却仍然乱码。 接下来想着在本地是正常的,传到服务器上就发生中文乱码的问题,一定是服务器数据库哪里设置的不...
thinkphp5提供了专门的助手函数json用来进行json格式数据输出,我们只需要在控制器返回数据时调用该助手函数即可,代码如下: return json($data);
ThinkPHP5最新版本默认开启了时间戳自动转换功能,会将时间戳自动转换为2018-08-30 16:20:49这种时间格式。但是使用这个功能时,我们经常会遇见A non well formed numeric value encountered错误。 解决办法:关闭时间戳自动转换功能。 1.全局关闭,在config.php文件中加入以下代码: '...
最近发现多个Thinkphp5开发的网站被挂马,导致首页被篡改,其他页面无法正常访问的情况。 木马中均包含以下代码: define('Viv, bebegim.','Denzel-你的英雄'); 经过检查,这些攻击是利用了Thinkphp5.0.0~5.0.23版本远程进行代码调用的漏洞进行的getshell。 漏洞的详细原理...