ThinkPHP
互联网人2019
不懂Java的运维不是好的PHP
展开
-
无限级关系带层级
一、创建表SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `test`-- ----------------------------DROP TABLE IF EXISTS `test`;CREATE TABLE `test` ( `id` int(10) unsig...原创 2019-10-25 14:18:03 · 485 阅读 · 0 评论 -
ThinkPHP中操作别的数据库
一、首先在config中设置该数据库信息//USER数据库设置 'DB_CONFIG'=>'mysql://root:root@localhost/phplee_user#utf8',二、在程序中这样调用//连接user数据库查询 $User=M('User','think_',C('DB_CONFIG')); $原创 2016-11-22 15:19:27 · 551 阅读 · 0 评论 -
ThinkPHP使用Memcached
class IndexController extends Controller {//析构函数public function _initialize() { //600秒 $this->cache=S(array('type'=>'memcache','host'=>'192.168.*.**','port'=>'11211','prefix'=>'think','expire'=>60原创 2015-09-13 22:41:37 · 626 阅读 · 0 评论 -
ThinkPHP使用Smarty
配置使用smarty模板 Application/Home/Conf/config.php return array( //'配置项'=>'配置值' 'TMPL_ENGINE_TYPE'=>'Smarty' ); Controller中写代码 Application\Home\Controller\IndexContro原创 2015-09-13 22:51:06 · 1118 阅读 · 0 评论 -
THinkPHP上传图片及生成缩略图
版本为:3.2.3代码如下:if(empty($_FILES['article_thumb']['tmp_name'])){ //echo "alert('您没有选择文件');history.back(-1);";exit;}else{ //上传图片 $root_path = ROOT_PATH . 'www/home/data/upload/images原创 2017-01-15 19:24:54 · 821 阅读 · 0 评论 -
ThinkPHP3.2.3将session放置到指定文件夹中
核心代码是这行//设置session 存储文件夹等信息session(array('name'=>'session_www','expire'=>3600,'path'=>'/data/www/xxoo.com/Data/Runtime/Session/www'));扩展:我给网站分成了几个大模块,分别是: www、admin (分别对应前台PC、后台),然后给每个大模块做了自动原创 2017-10-27 09:53:55 · 5018 阅读 · 0 评论 -
ThinkPHP3.2.3上传PNG图有白底的解决方法
照着这个网页改,直接就生效了,记录一下修改 \ThinkPHP\Library\Think\Image\Driver\Gd.class.php代码,如下部分://新增的原图 private $src_img;//打开图像 if('gif' == $this->info['type']){ $class = 'Think\\Imag转载 2017-06-02 14:28:24 · 1453 阅读 · 0 评论 -
ThinkPHP3.2.3整合支付宝接口
扩展类名为alipay,从我的下载资源中下载,下载后放置在\ThinkPHP\Library\Vendor文件夹下下载地址:http://download.csdn.net/download/leejianjun/10025194有个文件cacert.pem,放置在与入口文件index.php的同一文件夹下可以在PHP版demo中找找,或者在CSDN中搜一搜,也可以到我的下载资源中寻找原创 2017-10-17 09:35:43 · 606 阅读 · 0 评论 -
ThinkPHP3.2.3整合发送手机短信验证码
说明:本例使用的是美联软通的短信发送平台,网址是:http://web.5c.com.cn每条价格在几分钱,买的量越大,优惠力度越大。主要代码1、在\ThinkPHP\Library\Org文件夹下,创建Msg.class.php文件,代码如下:<?/*--------------------------------功能: PHP HTTP接口 发送短信修改原创 2017-10-17 10:29:25 · 4452 阅读 · 0 评论 -
ThinkPHP5中使用Smarty
1、用到的smarty类,我已经传到CSDN了,点击下载:http://download.csdn.net/download/leejianjun/101440762、将该类放到\thinkphp\library\think\view\driver文件夹下3、\application\config.php中smarty部分这样填写'template' =>原创 2017-12-04 12:14:30 · 2968 阅读 · 0 评论 -
ThinkPHP5常用数据操作
1、在\application\database.php中修改//'resultset_type' => 'array', 'resultset_type' => '\think\Collection', //可在select、find等查询后增加 toarray,返回数组2、在\application\index\model下新建一个模型文件Test.php,内容如下:原创 2017-12-04 17:34:08 · 1267 阅读 · 0 评论 -
ThinkPHP5的验证码操作
1、首先确认文件夹\vendor\topthink\think-captcha存在2、显示验证码的方法,我这里是写在:\application\admin\controller\Login.php//显示验证码 public function show_captcha(){ $captcha = new \think\captcha\Captcha();原创 2017-12-05 15:22:22 · 9401 阅读 · 4 评论 -
ThinkPHP5使用缓存
1、在\application\config.php中设置如下:'cache' => [ // 使用复合缓存类型 'type' => 'complex', // 默认使用的缓存 'default' => [ // 驱动方式 'type' => 'File', //!!在这设置换人的缓存方式原创 2017-12-06 15:14:19 · 6672 阅读 · 1 评论 -
用PHP一次写入百万条测试数据
亲测有效,本人网上各种搜资料摸索出来滴,执行效率甚至比通过navicat还要高。navicat见我另一篇博客。http://blog.csdn.net/leejianjun/article/details/78809592贴下核心代码供大家参考。1、PHP代码//添加测试数据 private function add_test_data($max=1000000){ $mo...原创 2018-03-12 17:13:15 · 3648 阅读 · 1 评论 -
ThinkPHP3.2.5实现一二级控制器自动匹配
问题:为什么要实现这个功能?答:因为在写接口文档的时候,发现了如下图所示:有轻度强迫症的我,迫切想把这一坨控制器放到一起,然后命名为C2c。于是,就有了这篇博客。PS:TP3并未原生支持一二级自动匹配控制器,而考虑到不影响原有的接口,所以才有这样的需求。思路是:设置默认控制器层级为2,然后写代码简单实现兼容原先的一级。实现如下:PS:可能不是很优雅,目前暂时还未发现...原创 2019-02-15 11:35:26 · 636 阅读 · 0 评论 -
ThinkPHP3“_STORAGE_WRITE_ERROR_”错误
今天在开发项目的时候,发现刷新的话经常报“_STORAGE_WRITE_ERROR_”错误,刚开始怀疑是不是TP3过于老朽出现了问题?或者是公司服务器开了负载均衡导致的未知错误?于是百度了下,找到了这篇文章:http://www.thinkphp.cn/bug/3110.html于是果断上服务器看,df -lh 后,/分区竟然是100%!?excuse me ?于是du -sm * 发...原创 2019-04-24 16:36:44 · 505 阅读 · 0 评论 -
记一次解决500错误
APP报“服务器繁忙”,询问安卓开发工程师,得知报这个错是因为服务器返回了500错误。500,一般是内部代码错误,或是服务器并发太高。我首先想到会不会是服务器并发太高了,因为公司用了负载均衡,如果配置不合理,有可能出现瓶颈。于是登进阿里云逐项排查,带宽充足、CPU、内存、磁盘读写都充足,当看到OSS有部分错误时,一度怀疑会不会是这个OSS导致的,但考虑了一下,觉得可能性不大,因为500...原创 2019-04-24 20:39:08 · 3016 阅读 · 0 评论 -
ThinkPHP多模块下同名模块的解决办法
ThinkPHP版本为:3.2.3比如说,我在Home和Wap大模块下都有一个UserCenter模块,这时候该怎么办呢?经过测试,找到一个简单的办法,那就是在/ThinkPHP/Library/Think下,复制两份Controller.class.php,分别命名为HomeController.class.php和WapController.class.php并分别修改其中的代原创 2016-11-30 11:57:54 · 2088 阅读 · 0 评论 -
ThinkPHP的M层遇到数据表有下划线的
使用驼峰法命名$Model=D("ProductClass"); ProductClassModel.class.php $Model=M("Product_class");原创 2016-05-28 10:20:32 · 2582 阅读 · 0 评论 -
ThinkPHP+phpstudy2014报 no input错误
修改.htaccess为:RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]原创 2016-05-28 10:19:14 · 358 阅读 · 0 评论 -
ThinkPHP3.2.3关闭调试模式及做些修改
1、首先在入口文件中关闭调试模式// 开启调试模式 建议开发阶段开启True 部署阶段注释或者设为falsedefine('APP_DEBUG',false);2、修改/ThinkPHP/Tpl/think_exception.tpl修改为自己想要的报错页面即可原创 2016-05-04 09:37:47 · 7253 阅读 · 0 评论 -
ThinkPHP添加模块
编辑 /index.phpdefine('BIND_MODULE','Admin');运行生效后注释掉原创 2016-05-28 10:12:16 · 1347 阅读 · 0 评论 -
TP构造函数
//ThinkPHP的构造函数public function _initialize() { header("Content-type:text/html;charset=utf-8");}原创 2016-05-28 10:43:58 · 1716 阅读 · 0 评论 -
TP更新操作判断
$result=$Model->where($condition)->save($data);if($result === false) { return false;}原创 2016-05-28 10:44:40 · 1328 阅读 · 0 评论 -
MyISAM转为InnoDB并在ThinkPHP中使用存储过程
一、将数据库由MyISAM转为InnoDB1、导出CentOS数据库的表结构#mysqldump -uroot -p test > test.sql 2、替换zjy_b2b_db_table.sql里的MyISAM为INNODB#sed -i 's/MyISAM/INNODB/g' test.sql 3、备份好数据库,将数据库里所有表删除 4、将处理好的数据库重新导入#mys原创 2016-05-28 10:51:54 · 1138 阅读 · 0 评论 -
ThinkPHP3.2.3添加水印
//添加水印 $image_path=ROOT_PATH.'xxoo/data/upload/product/'.$info['product_image']['savename']; //图片位置 $water_path=ROOT_PATH.'ooxx/images/water.png'; //水印位置原创 2016-06-25 10:43:33 · 1617 阅读 · 0 评论 -
ThinkPHP清除文件缓存
版本3.2.3$this->deldir(CACHE_PATH);//删除文件 private function deldir($dir) { $dh = opendir($dir); while ($file = readdir($dh)) { if ($file != "." && $file != "..") {原创 2016-06-15 14:43:32 · 1014 阅读 · 0 评论 -
ThinkPHP清除Redis缓存
TP3.2.3,全部清空$Redis=S(array('type'=>'redis','host'=>'127.0.0.1','port'=>'6379')); $Redis->clear();原创 2016-06-15 15:14:06 · 6444 阅读 · 0 评论 -
一些ThinkPHP查询语句
去重统计->count('distinct visit_ip')原创 2016-06-17 11:32:51 · 590 阅读 · 0 评论 -
ThinkPHP一些补充
1、配置文件中,'URL_MODEL' => 2, 2表示url rewrite模式,1为pathinfo2、2模式中, /user?page=1 $page=intval(I('get.page'));3、ThinkPHP内置模板引擎{$i.name}上一页到第 页 function validate() {if ($("#pagenum").v原创 2016-08-15 18:25:55 · 347 阅读 · 0 评论 -
ThinkPHP中同时上传视频和图片的简单处理方法
以下方法仅临时解决同时上传视频和图片的问题,如有更好办法会更新这篇博文。//判断是否上传了视频或图片 define('ROOT_PATH', dirname(THINK_PATH) .'/www/' ); if(!empty($_FILES['videofile']['tmp_name'])||!empty($_FILES['imgfile']['tmp_name'])){原创 2016-08-25 14:37:06 · 5581 阅读 · 0 评论 -
ThinkPHP验证码错误解决过程
ThinkPHP版本:3.2.3最近在测试TP3.2.3的时候,验证码老是错误。首先想到是不是因为复制来复制去导致验证码类代码出错呢?或者是用PHPStudy从Nginx切换到Apache的过程,导致代码有错呢?在测试的时候,忽然想到,TP验证码是以session为基础检测的,那么有没有可能是因为session没有正确生成导致的呢?然后检查了一下,还真的是。session能正确生成,验证码原创 2016-10-15 18:00:24 · 5541 阅读 · 5 评论 -
ThinkPHP中的二级域名通过cookie共享session从而实现同步登录
二级域名news和www指向同一个路径 DocumentRoot "D:\data\www\think_www\www\home" ServerName www.think.local ServerAlias think.local news.think.local在 Application/Home/Common/Conf/config.php中,增加二级域原创 2016-10-27 09:55:16 · 4686 阅读 · 0 评论 -
ThinkPHP3.2.3生成二维码
一、下载phpqrcode到https://sourceforge.net/projects/phpqrcode/下载二、整合到Thinkphp框架将下载下来的phpqrcode解压,在“ThinkPHP\Library\Vendor\”下新建目录phpqrcode,将压缩包内容解压到该文件夹下。三、控制器中的方法(为后台xx控制器,前台网址为xxoo.原创 2016-10-28 10:23:58 · 6150 阅读 · 0 评论 -
ThinkPHP中的跨域名共享session
经过一段时间的研究,终于取得突破两个网站:think.localthink2.local主要原理是:1、通过在think.local执行js脚本,访问think2.local的接口,将cookie的PHPSESSID传递过去2、修改think2.local的cookie中的PHPSESSID与think.local一致,从而在think2.local中可以与think.lo原创 2016-10-21 10:17:44 · 6723 阅读 · 0 评论 -
ThinkPHP实战之登录
一、模板页用到JQ登录表单有用户名、密码、验证码。 用户名: 密码: 验证码: JS部分{literal} //AJAX $("#submit").cl原创 2015-09-20 16:26:15 · 759 阅读 · 0 评论 -
ThinkPHP+DWZ(xhEditor)上传图片
DWZ使用xhEditor作为编辑器。一、HTML页Form无需添加 enctype="multipart/form-data" 也无需添加别的脚本二、PHP页//上传 public function upload() { $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = 314572原创 2015-09-26 09:43:26 · 1764 阅读 · 0 评论