thinkphp 杂项(3.2.3)】的更多相关文章

thinkphp杂项功能(主干) 一.总结 1.杂项功能:杂项里面我需要有点印象的是五个:缓存,多语言,图像处理,文件处理,单元测试 二.thinkphp杂项功能(主干) thinkphp扩展杂项功能中不熟悉的还有多语言,文件处理,单元测试 1.多语言 ThinkPHP内置通过\think\Lang类提供多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. 2.文件处理 那就应该是对文件的处理,就是来操作文件的 ThinkPHP5.…
G('start');//时间描点start php代码.... G('end');//时间描点end echo G('start','end',4).'-----------'; 时间统计echo G('start','end','m');内存统计 echo parse_name('java php python',1); //1是java编码风格, 0 是c 编码风格 layout渲染(等同于python的装饰器):1方法在配置里开启 'LAYOUT_ON'=>true, 'LAYOUT_N…
原文:Thinkphp框架拓展包使用方式详细介绍--验证码实例(十一) 拓展压缩包的使用方式详细介绍 1:将拓展包解压:ThinkPHP3.1.2_Extend.zip   --> 将其下的 \Extend  文件全部复制 2:将复制的文件放入项目中 E:\wamp\www\thinkphp\ThinkPHP\Extend(安装的时候这里面是空文件),你自己的项目目录 即可 =============================以下是,拓展包中验证码的使用==================…
easy calc 这次的比赛自己一题都没有做出来,赛后看题解的时候很难受,其实有很多东西自己其实是可以做出来的,但是思路被限制了,可能这就是菜吧. 首先web题目就是一个easy calc,emmmmmmm.想一想当初De1CTF2019的那道计算器.脑子头大.但是这一题是没有那么难. 首先打开网页是一个简单的提交页面.  这里面是提交到calc.php这个文件中,这里面有一个坑,就是要想看到源码,必须要不提交数据(但是我就没有看出这一点导致后面的路越来越难走,以至放弃). 获取源码 我们去…
TP框架:1.模板引擎2.MVC设计模式3.常用操作类 模板引擎和框架区别1.模板引擎只是框架中用来做php和html分离 MVC设计模式M model 数据模型V view 视图C control 控制器 V(html模板) -> C(PHP逻辑控制) -> M(Model类表操作) 定义一个新app:define("APP_NAME","home");define("APP_PATH","./home/");d…
一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo模式.这个模式很强大,每当你访问一个网站必然带有一长串参数,但是太长又显得不太友好.对于访问一个以MVC模式搭建的网站,必然带有M.C.A三个参数即module.controller.action,这些参数需要还需要用&符号隔开,假若参数量很多,就显得特别的不友好啦.然而PathInfo模式功能就是…
缘起 SAE 和其他的平台有些不同,不能在服务器上运行 Composer 来安装各种包,必须把源码都提交上去.一般的做法,可能是直接把源码的所有文件复制到目录中,添加到版本库.不过,这样就失去了与上游代码的同步的优势.还好 git 提供了另一个功能叫 subtree,不但提供了版本追踪的功能,让代码可以一直和上游同步,同时源码文件还能提交到当前的仓库中. 过程 首先,当然是要安装 git 的 subtree 命令.这个命令虽然随 git 一起安装了,但默认并没有启用.每个平台的安装方法有所不同,…
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: 对于字符串的截取,truncate函数只适合英文用户,对与中文用户来说,使用 truncate会出现乱码,而且对于中文英文混合串来说,截取同样个数的字符串,实际显示长度上却不同,一个中文的长度大致相当于两个英文的长度.此外,truncate不能同时兼容GB2312.UTF-8等编码. 解决方法:自…
ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ if(function_exists("mb_substr")){ $slice= mb_substr($str, $start, $length, $charset); }el…
public function NewsList(){ $this->assign('title','news'); $p = I('page',1); $listRows = 6; $News = M('news'); $info = $News->field('id,title,subtitle,publish_date,img,detail,typename')->where(array('type'=>'news','status'=>'1'))->order(…
thinkphp 模板显示display和assign的用法 $this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论何种变量类型都统一使用 assign 赋值$this->display() // 输出模版文件批量赋值$array['name'] = 'thinkphp'$array['email'] = 'liu21st@gmail.com'$array['phone'] = '12335678'$this->…
杂项之python描述符协议 本节内容 由来 描述符协议概念 类的静态方法及类方法实现原理 类作为装饰器使用 1. 由来 闲来无事去看了看django中的内置分页方法,发现里面用到了类作为装饰器来使用,由于之前就看到过这一类的用法,但是一直没有明白具体是如何实现的,今天本着打破砂锅问到底的精神去网上搜资料,在这里不得不吐槽下百度搜索的垃圾了.....竞价排名做的那么6,搜一些技术文档.....各种坑爹...就是找不到想要的资源...于是FQ上google搜了搜,找到了python官网的文档...…
1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会自动调用M方法.通俗一点说:M实例化参数是数据库的表名.D实例化的是你自己在Model文件夹下面建立的模型文件 例如:$user = new UserModel(); 等价于$user = D('user'); 如果实例化的是一个空模型 例如 $Demo = new Model(); 那么它等价于…
1.简单调用Kindeditor的图片上传功能: a.Html部署图片预览,记录图片上传成功之后的路径,以及上传图片点击按钮 <tr> <td>活动图片:</td> <td> <img id="picurl_img" :src="'../../'+data.picurl" alt="" class="flag-img"> </td> <td>…
常常看到别人的博客里面,或者网站里面有这样随机颜色,但字体大小与标签出现频率有关的标签云,于是自己就想写一个.至于颜色的随机显示,那就很简单了,这里就不列代码. 因为正在学thinkphp,所以数据查找的都是用的tp数据查找语句. Public function render( $data ){ //在博文——标签多对多关系的中间表中查找出所有的标签 $tags = M('blog_tags')->select(); $a = array(); //去掉重复的标签,将所有不重复的标签保存在数组a…
thinkphp文件夹下config 里面有个convention.php文件 里面有三个配置 'DEFAULT_MODULE' => 'Home', // 默认模块 'DEFAULT_CONTROLLER' => 'Index', // 默认控制器名称 'DEFAULT_ACTION' => 'index', // 默认操作名称 改掉这三个就可以改默认的首页…
项目地址:https://github.com/web3d/TPUnit ThinkPHP PHPUnit框架集成,基于TP3.2,建议PHP 5.4以上环境. 单元测试应该是提高PHP编码质量的解决之道,但应该没有多少PHP团队在用单元测试改善开发过程,更不用提TDD开发方法. 不可否认ThinkPHP框架在国内PHP圈子中的"至高"地位,所以才有这次整合尝试,同时也在团队中进行推行相关实践. 1. 初始配置 为了减少学习成本,建议使用像Netbeans这样的IDE来设定PHPUni…
在记录用户发送短信需要获取用户ip时,tp一直获取的是内网ip:10.10.10.10 tp框架获取ip方法:get_client_ip /** * 获取客户端IP地址 * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字 * @param boolean $adv 是否进行高级模式获取(有可能被伪装) * @return mixed */ function get_client_ip($type = 0,$adv=false) { $type =…
ThinkPHP Ajax分页代码 publicfunction index() { $where=array(); $name = I('name'); if(!empty($name)){ $where['name']= array('like','%'.(string)$name.'%'); } $Role=M('Role'); $count= $Role->where($where)->count();// 查询满足要求的总记录数 $Page =new \Think\AjaxPage(…
在Thinkphp目录的Lib\ORG\Util\目录里新建AjaxPage.class.php,写入一下内容: <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] // +---------------------------------------------------------------…
项目服务端框架我选用的是ThinkPHP,由于策划案中有需求要定时刷新指定数据,所以在windows平台我使用微软的计划任务调用bat脚本来执行下面的命令来完成 php index.php /Home/cli 即使用PHP的CLI模式调用ThinkPHP的入口文件,然后再传入指定控制器完成相应的数据处理./Home/cli 为我新增的名为CliController的控制器,在类中index方法调用相应处理数据的模块即可.特别注意:在windows平台上执行时在bat脚本中一定要先将当前执行目录切…
TP图片上传类的理解 在做自己项目上传图片的时候一直都有用到TP的上传图片类,所以要进入源码探索一下. 文件目录:./THinkPHP/Library/Think/Upload.class.php namespace Think; //声明命名空间 class Upload //声明类名 /** * 默认上传配置 * @var array */private $config = array(    'mimes'        => array(), //允许上传的文件MiMe类型    'ma…
TP3.2验证码类的理解 今天在学习中用到了THINKPHP验证码,为了了解究竟,就开始阅读TP验证码的源码. 源码位置:./ThinkPHP/Library/Think/Verify.class.php 首先分段来阅读源码 1.namespace Think; Class Verify表示Thinkphp命名空间下的Verify类 2. protected $config = array( 'seKey'    => 'ThinkPHP.CN', // 验证码加密密钥 'codeSet'  =…
杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏效了...于是上网查了查,QQ对这方面做了一些限制,必须使用授权码才能登陆邮箱.官方链接在这:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256按照上面的官方文档配置好之后就可以使用QQ邮箱发…
杂项之图像处理pillow 本节内容 参考文献 生成验证码源码 一些小例子 1. 参考文献 http://pillow-cn.readthedocs.io/zh_CN/latest/ pillow中文文档http://pillow.readthedocs.io/en/3.4.x/ pillow官方文档http://blog.csdn.net/orangleliu/article/details/43529319 一些小例子http://python.jobbole.com/83685/ pill…
php的各种扩展配置起来实在不容易,记录一下备忘: 一.php56 安装 虽然php7出来了,但是没用过,不知道有没有坑,这里仍然使用php5.6版本 1.1 安装php/php-pfm brew update brew tap homebrew/dupes brew tap josegonzalez/homebrew-php brew install --without-apache --with-fpm --with-mysql php56 注意:记得要带上--with-mysql 否则代码…
一.项目模块规划 1.项目分为PC端.移动端.和PC管理端,分为对应目录为 /Application/Home,/Application/Mobile,/Application/Admin: 对应入口文件为 index.php, mobile.php,admin.php,入口文件中设定绑定模块: ThinkPHP配置>>>>>>>>>>>>>>>>>>>>>>>>…
1.注意区分项目语言包和系统语言包 2.实现语言包和数据库语言同步切换 实用链接: ThinkPHP完全开发手册3.1 多语言 thinkphp3.1 多语言简单demo 总结ThinkPHP使用技巧经验分享(二) 多语言用户选择机制…
2016年11月15日11:15:47 Windows下如果碰到如此问题,要看文件保存根路径里的rootpath,比如ThinkPHP框架里config.php文件里的的参数配置: //文件上传相关配置 'UPLOAD_CONFIG' => array( 'mimes' => '', //允许上传的文件MiMe类型 'maxSize' => 2 * 1024 * 1024, //上传的文件大小限制 (0-不做限制,默认为2M,后台配置会覆盖此值) 'autoSub' => true…
自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 数据验证有两种方式: 静态方式:在模型类里面通过$_validate属性定义验证规则. 动态方式:使用模型类的validate方法动态创建自动验证规则. 无论是什么方式,验证规则的定义是统一的规则,定义格式为: array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]…