ThinkPHP数据库短时间内查询过多查询不完整问题

经调试发现,当在短连接的情况下,频繁过多的socket连接时,会发生异常。这里我们将MySQL的连接方式改成长连接即可。在TP5中,可以在/application/database.php中,修改params项,由params=>[],改成如下:'params'         => [    \PDO::ATTR_PERSISTENT   =>...

阅读全文

ThinkPHP报错SQLSTATE[HY000] [2002] No such file or directory解决方案

出现这个报错,一般都是php.ini中关于>mysql.sock的指向与my.cnf中mysq.sock的指向不一致导致的。方案一打开/etc/my.cnf配置文件(这里的我的机器,具体根据环境实际情况查找),找到如下配置项目:注意到其中的socket没,这里就是mysql.sock的正确指向位置。接下来,再打开php.ini文件(一般是在php安装目录下的etc目录中),找到与mysqldefault_socket相关的配置项目,比如mysqli.default_socket 或 pdo_mysql.default_sock...

阅读全文

php调试时print_r/var_dump的区别

print和echo一样,但速度比echo慢。print_r打印关于变量的易于理解的信息,如果给出的是string、integer或float,将打印变量值本身。如果给出的是array,将会按照一定格式显示键和元素。object与数组类似。记住,print_r()将把数组的指针移到最后边。使用reset()可让指针回到开始处。var_export:跟print_r和var_dump类似,但是很少用。var_dump:此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。var_dump和p...

阅读全文

phpcms增加二维码生成功能的两种方法

第一种方法,使用PHP原声来生成PHP环境必须开启支持GD21、api接口文件目录增加如下文件:官网下载地址:http://phpqrcode.sourceforge.net/官方示例地址:http://phpqrcode.sourceforge.net/examples/index.phpphpqrcode.php2、在phpcms框架主目录functions中我们增加一个自定义函数:\phpcms\libs\functions\extention.func.php增加的二维码函数如下:/***  extention.func...

阅读全文

thinkphp模板中使用原生php代码

在模板中使用原生php代码可能是我们需要的,毕竟thinkphp的方法再全再灵活,有些地方使用原生php去写更方便,所以thinkphp有提供我们在模板中使用原生php的方法首先找到TMPL_DENY_PHP这个参数改为falsePhp代码可以和标签在模板文件中混合使用,可以在模板文件里面书写任意的PHP语句代码,包括下面两种方式: 第一种是使用php标签: 例如: <php>echo 'Hello,world!';</php>我们建议需要使用PHP代码的时候尽量采用php...

阅读全文

php数组转换为字符串的两种方法

第一种方法:使用PHP本身的函数implode来直接将数组转换为字符串。第二种方法:使用循环遍历数组元素拼接成字符串。下面我们通过具体的代码示例来给大家一一解说。代码示例方法1:<?php$arr=['PHP','Python','Java','C'];$str=implode(',',$arr);var_dump($arr);var_dump($str);在上述代码中,首先我们创建了一个$arr数组,里面分别赋了四个不同的值;然后再使用implode函...

阅读全文

PHP实现递归排序

递归算法对于任何一个编程人员来说,应该都不陌生。因为递归这个概念,无论是在PHP语言还是Java等其他编程语言中,都是大多数算法的灵魂。对于PHP新手来说,递归算法的实现原理可能不容易理解。但是只要你了解掌握了这个算法原理,就可以灵活运用递归算法实现编程中的多种功能比如实现无限分类等。递归也是入门者最需要掌握的一个基础算法技巧。那究竟什么是递归呢?递归其实就是函数本身直接或者间接地调用自身的一种编程方法,也可以理解为有反复执行过程的一种方法,这个就与循环非常相似,但是递归调用的函数中必须要有终止条件,也就是一定要有跳出反复执行过程的条件,否则就会成为死循...

阅读全文

ThinkPHP3.2图片验证码使用

Thinkphp框架验证码的路径目录:ThinkPHP->Library->Think->Verify.class.php,只要在控制器中实例化这个类就能实现验证码的功能了。可以对生成的验证码设置相关的参数,以达到不同的显示效果。这些参数包括:参数描述expire验证码的有效期(秒)useImgBg是否使用背景图片默认为falsefontSize验证码字体大小(像素)默认为25useCurve是否使用混淆曲线默认为trueuseNoise是否添加杂点默认为trueimageW验证码宽度设置为0为自动计算imag...

阅读全文

phpcms二次开发通过layui实现下拉加载的方法

下拉加载时最近比较流行下拉加载这个效果,自己没事动手实践在phpcms上写了一个,实现还是比较简单,没有修改多少源文件,前端使用的模块化框架layui,都封装好了加载,直接在ajax_append.php文件中按返回的数据格式返回即可下面直接看我的实例吧首先在api目录下创建一个ajax_append.php文件,内如如下:<?phpdefined('IN_PHPCMS') or exit('No permission resources.'); /**&...

阅读全文

Thinkphp使用S方法缓存数据

在ThinkPHP中进行缓存操作,一般情况下并不需要直接操作缓存类,因为系统内置对缓存操作进行了封装,直接采用S方法即可,例如:缓存初始化S(array('type'=>'xcache','expire'=>60));缓存初始化可以支持的参数根据不同的缓存方式有所区别,常用的参数是:参数描述expire 缓存有效期(时间为秒)prefix 缓存标识前缀type 缓存类型系统目前已经支持的缓存类型包括:Apachenote、Apc、Db、Eaccelerat...

阅读全文