09 2016 档案
摘要:模板继承是3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中
阅读全文
posted @ 2016-09-19 10:56
chinalorin'blogs
摘要:模板和操作映射功能是3.1.2版本支持的对模块和操作设置的映射机制,由于可以通过改变配置动态改变(实际真正改变,并非别名)URL访问地址,加强了应用的安全性,而且,映射机制具有URL不区分大小写访问的特性,对于应用的迁移也有很大的帮助。因为,普通情况下,如果需要更改URL的模块或者操作访问的话,需要
阅读全文
posted @ 2016-09-19 10:51
chinalorin'blogs
摘要:默认情况下ThinkPHP框架系统默认使用的模板引擎是内置模板引擎。内置模板引擎支持模板文件中采用php原生态代码和模板标签的混合使用。ThinkPHP官方开发文档说,这种默认的内置模板引擎的性能是高效的,但还不是最佳的。要使模板引擎的性能达到最佳效率,就要使用PHP本身作为模板引擎。使用PHP本身
阅读全文
posted @ 2016-09-19 10:41
chinalorin'blogs
摘要:在ACTION中新建一个文件EmptyAction.class.php,文件中的代码如下: <?php class EmptyAction extends Action{ function _empty(){ header("HTTP/1.0 404 Not Found");//使HTTP返回404
阅读全文
posted @ 2016-09-19 10:36
chinalorin'blogs
摘要:概述 正如你所见到的一样,I方法是ThinkPHP众多单字母函数中的新成员,其命名来自于英文Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下:I('变量类型.变量名',['默认值'],['过滤方法'])变量类型是指请求方式或者输入类型,包括: 注意:变量类
阅读全文
posted @ 2016-09-19 10:31
chinalorin'blogs
摘要:hinkPHP的CURD操作中有很多非常实用的方法,从这篇开始,我们会为大家一一介绍。首先为大家介绍下field方法的用法。field属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段,可以用于查询和写入操作。 1、用于查询 在查询操作中field方法是使用最频繁的。 $Model->f
阅读全文
posted @ 2016-09-19 10:22
chinalorin'blogs
摘要:我们已经了解了ThinkPHP中的S方法的用法,F方法其实是S方法的一个子集功能,仅用于简单数据缓存,并且只能支持文件形式,不支持缓存有效期,因为采用的是PHP返回方式,所以其效率较S方法较高,因此我们也称之为快速缓存方法。F方法的特点是:简单数据缓存;文件形式保存;采用PHP返回数据方式加载缓存;
阅读全文
posted @ 2016-09-19 10:14
chinalorin'blogs
摘要:今天来给大家讲下查询最常用但也是最复杂的where方法,where方法也属于模型类的连贯操作方法之一,主要用于查询和操作条件的设置。where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查
阅读全文
posted @ 2016-09-19 10:06
chinalorin'blogs
摘要:limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多。ThinkPHP的limit方法可以兼容所有的数据库驱动类的。 用法 限制结果数量 例如获取满足要求的10个用户,如下调用即可: $User = M('User');$User->where('s
阅读全文
posted @ 2016-09-19 09:51
chinalorin'blogs
摘要:page方法也是模型的连贯操作方法之一,是完全为分页查询而诞生的一个人性化操作方法。 用法 我们在前面已经了解了关于limit方法用于分页查询的情况,而page方法则是更人性化的进行分页查询的方法,例如还是以文章列表分页为例来说,如果使用limit方法,我们要查询第一页和第二页(假设我们每页输出10
阅读全文
posted @ 2016-09-19 09:48
chinalorin'blogs
摘要:table方法也属于模型类的连贯操作方法之一,主要用于指定操作的数据表。 用法 一般情况下,操作模型的时候系统能够自动识别当前对应的数据表,所以,使用table方法的情况通常是为了:切换操作的数据表;对多表进行操作;例如: $Model->table('think_user')->where('st
阅读全文
posted @ 2016-09-19 09:43
chinalorin'blogs
摘要:order方法属于模型的连贯操作方法之一,用于对操作的结果排序。 用法 $Model->where('status=1')->order('id desc')->limit(5)->select(); 注意:连贯操作方法没有顺序,可以在select方法调用之前随便改变调用顺序。支持对多个字段的排序,
阅读全文
posted @ 2016-09-19 09:41
chinalorin'blogs
摘要:data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法。 用法 写操作 通常情况下我们都是通过create方法或者赋值的方式生成数据对象,然后写入数据库,例如: $Model = D('User');$Model->c
阅读全文
posted @ 2016-09-19 09:38
chinalorin'blogs
摘要:ThinkPHP3.2.3版本数据库驱动采用PDO完全重写,配置和使用上面也比之前版本更加灵活和强大,我们来了解下如何使用。首先,3.2.3的数据库配置信息有所调整,完整的数据库设置包括: /* 数据库设置 */'DB_TYPE' => '', // 数据库类型'DB_HOST' => '', //
阅读全文
posted @ 2016-09-19 09:31
chinalorin'blogs
摘要:C语言占据榜首,但大数据类是最大赢家。 IEEE Spectrum的第三次“最受欢迎编程语言”交互式排行榜新鲜出炉。因为不可能顾及到每一个程序员的想法,Spectrum使用多样化、可交互的的指标权重来评测每一种语言的现行使用情况。 数据记者Nick Diakopoulos从10个线上资源中选取了12
阅读全文
posted @ 2016-09-19 09:20
chinalorin'blogs
摘要:数字签名:对数据和私钥进行hash运算得到消息摘要,连同消息本身一块发给客户端。数据签名强调客户端接收到的数据是来自特定服务端,服务端具有对数据不可否认性。客户端通过确认此次签名的正确性来判断拿到的消息是否来自特定服务端。 数据加密:对数据进行加密,有对称加密和非对称加密两种。PHP中常使用 mcr
阅读全文
posted @ 2016-09-19 09:19
chinalorin'blogs
摘要:ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重
阅读全文
posted @ 2016-09-19 08:31
chinalorin'blogs
摘要:在2016中国云计算技术大会(CCTC 2016,专题报道)上,百度开放云首席架构师徐串发表了题为《企业IT基础架构在云端如何变革》的主题演讲,并接受CSDN记者专访,深入分享了他对架构及设计的认识,对架构师工作和技能的理解,以及百度开放云架构满足大数据和人工智能等不同应用需求的实践经验。 徐串表示
阅读全文
posted @ 2016-09-10 18:21
chinalorin'blogs
摘要:Thinkphp作为国内的一款流行框架,相信使用的人一定不在少数。本篇我们来分析一下Thinkphp中比较重要的一部分——分布式数据库的连接。 当然了,我们在这里不是去将如何使用模型去对数据库进行增删改查。我们是对其底层的连接代码做一个分析,可以帮助大家更好的理解thinkphp对数据库的操作。方便
阅读全文
posted @ 2016-09-10 17:29
chinalorin'blogs
摘要:初学CI框架遇到的一些问题,与Thinkphp框架对比的不同之处。 初学CI框架遇到的一些问题,与Thinkphp框架对比的不同之处。 system 是框架核心 application 是项目目录 index.php 是项目入口文件 其他目录可以删除 控制器命名规则 控制器不加 Controller
阅读全文
posted @ 2016-09-09 10:41
chinalorin'blogs
摘要:PHP中的PDO函数库详解 PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力;与ADODB和MDB2相比,PDO更高效。目前而言,实现“数据库抽象层”任重而道远,使用PDO这样的“数据库访问抽象层”是一个不错
阅读全文
posted @ 2016-09-09 10:37
chinalorin'blogs
摘要:函数: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
阅读全文
posted @ 2016-09-09 10:34
chinalorin'blogs
摘要:php匹配邮箱正则 '/[a-z0-9&\-_.]+@[\w\-_]+([\w\-.]+)?\.[\w\-]+/is'
阅读全文
posted @ 2016-09-09 10:32
chinalorin'blogs
摘要:这四种方法根据不同情况使用,可以实现对文件的任何操作,下面有详细介绍。 这四种方法根据不同情况使用,可以实现对文件的任何操作,下面有详细介绍。 1.把整个文件读入一个字符串中 file_get_contents(); 2.把整个文件读入一个数组中,一行就是一个数组元素 file(); 3.读取文件若
阅读全文
posted @ 2016-09-09 10:30
chinalorin'blogs
摘要:memory_get_usage()可以查看当前php使用的内存大小。对于优化算法提高内存使用效率还是很实用的,尤其是对当下的移动端程序。 memory_get_usage()可以查看当前php使用的内存大小。对于优化算法提高内存使用效率还是很实用的,尤其是对当下的移动端程序。 <?php echo
阅读全文
posted @ 2016-09-09 10:28
chinalorin'blogs
摘要:/** * 判断是否为合法的身份证号码 * @param $mobile * @return int */ function isCreditNo($vStr){ $vCity = array( '11','12','13','14','15','21','22', '23','31','32','
阅读全文
posted @ 2016-09-09 10:26
chinalorin'blogs
摘要:首先去七牛云官网下载phpSDK工具放在Think/library/Vendor下。 ueditor后台调用方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /** * 上传文件 * @param */ public function UploadSo
阅读全文
posted @ 2016-09-09 10:05
chinalorin'blogs
摘要:I('post.email','','email'); int boolean float validate_regexp validate_url validate_email validate_ip string stripped encoded special_chars unsafe_raw
阅读全文
posted @ 2016-09-09 10:03
chinalorin'blogs
摘要:如下示例: $_where 和 $where组合查询 $_where之间用OR $where之间用AND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 $
阅读全文
posted @ 2016-09-09 10:01
chinalorin'blogs
摘要:ThinkPHP 图片处理函数,需要文字水印字体,可在windows下 控制面板 > 大图标(右上角) > 字体 找到需要的字体 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3
阅读全文
posted @ 2016-09-09 10:00
chinalorin'blogs
摘要:先了解一下ueditor后台请求参数与返回参数格式规范: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 4
阅读全文
posted @ 2016-09-09 09:51
chinalorin'blogs
摘要:详情查看ThinkPHP3.2手册 架构 > 自动加载 章节 详情查看ThinkPHP3.2手册 架构 > 自动加载 章节 vendor('Uploader','','.class.php') vendor('Uploader','','.class.php')
阅读全文
posted @ 2016-09-09 09:44
chinalorin'blogs
摘要:// 静态缓存 // 'HTML_PATH' 缓存目录,这是个常量不是配置项,在入口文件中定义 // 'HTML_CACHE_ON' => true, // 开启静态缓存 'HTML_CACHE_TIME' => 3600, // 全局静态缓存有效期(秒) 'HTML_FILE_SUFFIX' =>
阅读全文
posted @ 2016-09-09 09:43
chinalorin'blogs
摘要:用于ajax动态加载数据的分页类,分页事件可以动态添加,去除了a链接中的href地址。 用于ajax动态加载数据的分页类,分页事件可以动态添加,去除了a链接中的href地址。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
阅读全文
posted @ 2016-09-09 09:41
chinalorin'blogs
摘要:thinkphp签到的实现代码 thinkphp签到的实现代码 数据表 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE `members_sign` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `uid` int(11)
阅读全文
posted @ 2016-09-09 09:39
chinalorin'blogs
摘要:ThinkPHP模型类比较常用的两个方法,table() join() ThinkPHP模型类比较常用的两个方法,table() join() table 1 $list = M()->table('user1 a, user2 b')->where('a.id = b.id')->field(
阅读全文
posted @ 2016-09-09 09:35
chinalorin'blogs
摘要:手册上说的很冗余,没看懂,下面简单的讲一下具体用法。 手册上说的很冗余,没看懂,下面简单的讲一下具体用法。 函数调用: lib公共函数库叫 common.php App/common/common.php 分组模块下的公共函数库叫 function.php App/Modules/Admin/com
阅读全文
posted @ 2016-09-09 09:34
chinalorin'blogs
摘要:照做绝对行,在ThinkPHP中,第三方库都放在ThinkPHP/Library/Vendor/路径下。 照做绝对行,在ThinkPHP中,第三方库都放在ThinkPHP/Library/Vendor/路径下。 1.下载OSS PHP SDK:https://help.aliyun.com/docu
阅读全文
posted @ 2016-09-09 09:33
chinalorin'blogs
摘要:在thinkphp中,对于访问量大的网站可以用静态缓存来越过数据库瓶颈来提高访问速度,但有时候并不是整个页面都要缓存的,如登录的用户名部分,那么如何实现局部不缓存呢? 在thinkphp中,对于访问量大的网站可以用静态缓存来越过数据库瓶颈来提高访问速度,但有时候并不是整个页面都要缓存的,如登录的用户
阅读全文
posted @ 2016-09-09 09:30
chinalorin'blogs
摘要:统计pv量很常用,下面的代码用ajax实现的,使用ajax可以避免页面缓存造成的影响,只要客户端的js代码执行了就可以统计流量。 统计pv量很常用,下面的代码用ajax实现的,使用ajax可以避免页面缓存造成的影响,只要客户端的js代码执行了就可以统计流量。 一共就两部 将下面代码放在要统计的htm
阅读全文
posted @ 2016-09-09 09:29
chinalorin'blogs
摘要:thinkphp的路由功能很实用也很强大,可以简化url,有强大的正则匹配,可以做成任何想要的url样式。 thinkphp的路由功能很实用也很强大,可以简化url,有强大的正则匹配,可以做成任何想要的url样式。 在前台的config.php配置文件中: 1.首先开启路由 1 'URL_ROUTE
阅读全文
posted @ 2016-09-09 09:27
chinalorin'blogs
摘要:thinkphp的核心目录即框架文件可以放在项目之外的目录,这点手册上有提到,放在项目之外的地方可以方便其他项目共用一个框架文件。 thinkphp的核心目录即框架文件可以放在项目之外的目录,这点手册上有提到,放在项目之外的地方可以方便其他项目共用一个框架文件。 在入口文件的index.php中,在
阅读全文
posted @ 2016-09-09 09:26
chinalorin'blogs
摘要:静态缓存很实用但是有时有些不需要静态缓存,如404页面,第一次访问返回404页面并缓存,第二次换回的状态就是200,属于正常访问,虽然人眼可以看出是404页面,但是搜索引擎不会的,而是把这个页面当成正常页面收录,那么问题就大了,404页面有一千个或更多,搜索引擎会认为你作弊制造大量垃圾内容,而且网站
阅读全文
posted @ 2016-09-09 09:25
chinalorin'blogs
摘要:默认是$i,但是嵌套循环是使用$i,默认的变量$i就会被污染。可以自定义设置变量key="k" k任意。 默认是$i,但是嵌套循环是使用$i,默认的变量$i就会被污染。可以自定义设置变量key="k" k任意。 用 key="k" 代替默认的 $i 1 2 3 4 5 <volist name="l
阅读全文
posted @ 2016-09-09 09:23
chinalorin'blogs
摘要:多表查询经常使用到,但如何在thinkphp中实现多表查询呢,其实有三种方法。 多表查询经常使用到,但如何在thinkphp中实现多表查询呢,其实有三种方法。 1 2 3 4 5 6 7 8 9 10 11 12 // 1、原生查询示例: $Model = new Model(); $sql = '
阅读全文
posted @ 2016-09-09 09:22
chinalorin'blogs
摘要:在thinkphp中有两个方法可以在某个方法之前或之后执行,分别是_before_xxx() 和_after_xxx()两个方法 在thinkphp中有两个方法可以在某个方法之前或之后执行,分别是_before_xxx() 和_after_xxx()两个方法 1 2 3 4 5 6 public f
阅读全文
posted @ 2016-09-09 09:21
chinalorin'blogs
摘要:thinkphp3.2常用配置选项,app/Common/Conf/config.php 或者 app/Home/Conf/config.php thinkphp3.2常用配置选项,app/Common/Conf/config.php 或者 app/Home/Conf/config.php 1 2
阅读全文
posted @ 2016-09-09 09:19
chinalorin'blogs
摘要:thinphp中前台后台都有互相调用方法,这样可以省去重复内容。 thinphp中前台后台都有互相调用方法,这样可以省去重复内容。 1 2 $hello = new \Admin\Common\Fun\hello(); $hello->hehe(); 调用其他地方的方法同理。 如果是在同控制器里模块
阅读全文
posted @ 2016-09-09 09:17
chinalorin'blogs
摘要:thinphp3.2中提供了自定义生成模块与控制器的常量,分别是BIND_MODULE,BUILD_CONTROLLER_LIST thinphp3.2中提供了自定义生成模块与控制器的常量,分别是BIND_MODULE,BUILD_CONTROLLER_LIST 在 index.php 文件中定义
阅读全文
posted @ 2016-09-09 09:16
chinalorin'blogs
摘要:thinkphp已经封装好了常用的查询方法,且都比较实用,对于不常用的查询框架也保留了原始查询方法query。 thinkphp已经封装好了常用的查询方法,且都比较实用,对于不常用的查询框架也保留了原始查询方法query。 1 2 $Model = new Model() // 实例化一个model
阅读全文
posted @ 2016-09-09 09:14
chinalorin'blogs
摘要:在开发中经常要获取一个数据的情况,thinkphp中有一个getField()方法可以解决这个问题。 在开发中经常要获取一个数据的情况,thinkphp中有一个getField()方法可以解决这个问题。 获取一个数据 1 2 $user = M('demo'); $data = $user->get
阅读全文
posted @ 2016-09-09 09:12
chinalorin'blogs
摘要:网站的静态缓存对大访问量有很好的缓解作用,尤其对网站的大并发,可有效的缓解数据库的压力。在thinkphp中实现静态缓存很简单,thinkphp都已经封装好了直接调用即可。 网站的静态缓存对大访问量有很好的缓解作用,尤其对网站的大并发,可有效的缓解数据库的压力。在thinkphp中实现静态缓存很简单
阅读全文
posted @ 2016-09-09 09:10
chinalorin'blogs
摘要:在thinkphp中的模板要加载静态文件如css,js等文件时要经常用到模板常量。 在thinkphp中的模板要加载静态文件如css,js等文件时要经常用到模板常量。 假如项目放在/web/shop中,则如下所示对应常量的输出值: 1 2 3 4 5 6 7 8 9 // 不含域名 __ROOT__
阅读全文
posted @ 2016-09-09 09:09
chinalorin'blogs
摘要:thinkphp中model类的addAll()方法可以将数据同时添加到数据库中. 1 2 3 4 5 6 // 批量添加数据 (only MySQL) $user = M('user'); //array('表字段'=>'值') $dataList[] = array('name'=>'think
阅读全文
posted @ 2016-09-09 09:07
chinalorin'blogs
摘要:本节我们将讨论如何将前端资源集成到项目中,包括前端资源的发布和引入。本项目将使用 Bower 和 Gulp 下载和集成jQuery、Bootstrap、Font Awesome 以及 DataTables。 1、“偷”别人的代码 开发 web 应用最快的方式就是借鉴别人的项目。换句话说,“偷”他们的
阅读全文
posted @ 2016-09-06 12:14
chinalorin'blogs
摘要:一个完整的博客应用不能没有后台管理系统。所以在本节中我们将继续完善博客应用 —— 开发后台管理系统。 1、创建路由 在上一节十分钟创建博客项目中,已经设置过了 app/Http/routes.php,现在,我们要添加后台路由到该文件。 为什么要使用路由? Laravel 5.1 一种机制用来建立 w
阅读全文
posted @ 2016-09-06 12:13
chinalorin'blogs
摘要:1、创建文章数据表及其模型(0:00~2:30) 我们已经在上一节中为博客项目完成了大部分准备工作,现在首先要做的就是为这个项目创建一个新的文章表 posts及该表对应的模型类 Post,使用如下Artisan命令即可完成这两个创建工作: 上述命令会做两件事情: 在 app 目录下创建模型类 App
阅读全文
posted @ 2016-09-06 12:12
chinalorin'blogs
摘要:3、使用 Gulp 进行 TDD(测试驱动开发) Gulp 是一个使用 JavaScript 编写的自动化构建工具。用于对前端通用任务(如最小化、压缩、编译)进行自动构建。Gulp 还可以用来监控源代码的改动并自动运行任务。 Laravel 5.1 提供了一个封装 Gulp 的 Laravel El
阅读全文
posted @ 2016-09-06 12:11
chinalorin'blogs
摘要:1、创建博客项目 我们将遵循上一节提到的六步创建一个新 Laravel 5.1 项目的步骤,创建本节要用到的博客项目 —— blog。 首先,在本地主机安装应用骨架: 接下来,编辑 Homestead.yaml,添加站点信息及数据库信息: 然后运行 homestead provision 重新启动
阅读全文
posted @ 2016-09-06 12:10
chinalorin'blogs
摘要:1、Homestead 从主机操作系统的控制台中(Windows 中被称作命令提示符,Linux 中被称作终端),你可以轻松通过不带参数的homestead 命令查看所有有效的 Homestead 命令: 日常最经常使用的命令恐怕非启动 Homestead 虚拟机的 homestead up 莫属了
阅读全文
posted @ 2016-09-06 11:38
chinalorin'blogs
摘要:1、不同 Linux 发行版本的区别 不同的 Linux 发行版本之间有一些细微区别,尤其是包管理器:CentOS 和 Fedora 使用 yum 作为包管理器,而Ubuntu 使用 apt,在 OS X 上除了 App Store 之外没有其他官方的包管理器了,但有一个非官方的 OS X 包管理器
阅读全文
posted @ 2016-09-06 11:36
chinalorin'blogs
摘要:1、安装原生PHP 下载/解压 PHP 到 PHP 下载页下载最新版本的 PHP(如果使用 Laravel 5.1 的话需要 PHP 5.5.9+ 版本),解压下载的zip格式压缩文件到本地目录,比如E:\Php。 编辑 php.ini 打开命令行按照如下步骤创建php.ini文件: 然后在编辑 p
阅读全文
posted @ 2016-09-06 11:35
chinalorin'blogs
摘要:1、概述 通过本项目我们将会构建一个简单、清爽、优雅的博客系统,以及维护管理该博客的后台。 本项目源码公开在GitHub上:https://github.com/ChuckHeintzelman/l5beauty,项目作者的博客 LaravelCoding.com 就是基于该博客系统搭建的。 在正式
阅读全文
posted @ 2016-09-06 11:34
chinalorin'blogs
摘要:一、获取Auth类1、ThinkPHP3.1.3完整版:http://www.thinkphp.cn/down/338.html2、OneThink1.0正式版:https://github.com/liu21st/onethink二、建立需要的数据表打开Auth.class.php,将其中有关数据
阅读全文
posted @ 2016-09-06 09:47
chinalorin'blogs
摘要:基于Thinkphp3.2的qq第三方oauth认证登录扩展类,由于腾讯oauth sdk写的太多,不能与thinkphp和好的结合,最终想法讲腾讯oauth sdk写成tp的扩展类先看代码,将代码保存在/library/org/util/Qqconnect.class.php文件中在__const
阅读全文
posted @ 2016-09-06 09:39
chinalorin'blogs
摘要:用thinkphp开发了好些项目了;最近准备抽空写一些经验总结; 希望能给刚开始接触tp的童鞋们提供一些开发的方案;少走一些弯路;少踩一些坑; 这些绝对都是些精华干货;耐着性子阅读;相信肯定是会有收获的; 先从thinkphp的目录架构开始吧; 1 2 3 4 5 6 7 8 9 10 11 12
阅读全文
posted @ 2016-09-06 09:35
chinalorin'blogs
摘要:1、多语言实现的原理在实现多语言的时候需要调用L()函数。那么L函数是如何实现多语言的输出呢?在L函数内部有一个静态变量$_lang一维数组。所有的语言数据都存在在这个数组中。系统在加载的时候根据选择的语言,搜寻指定目录下的语言包文件,调用L函数将文件的语言数据存入上面的静态数组中,成为以后搜索的数
阅读全文
posted @ 2016-09-06 09:09
chinalorin'blogs
摘要:Success和error方法都有对应的模板,并且是可以设置的,默认的设置是两个方法对应的模板都是://默认错误跳转对应的模板文件'TMPL_ACTION_ERROR' => THINK_PATH . 'Tpl/dispatch_jump.tpl';//默认成功跳转对应的模板文件'TMPL_ACTI
阅读全文
posted @ 2016-09-06 09:04
chinalorin'blogs
摘要:本文介绍的渗透测试工具包括:Metasploit、Nessus安全漏洞扫描器、Nmap、Burp Suite、OWASP ZAP、SQLmap、Kali Linux和Jawfish(Evan Saez是Jawfish项目的开发者之一)。 如果说你的资产有可能被国内外的攻击者盯上并没有把你吓得半死,那
阅读全文
posted @ 2016-09-06 08:53
chinalorin'blogs
摘要:根据猎豹安全实验室的云端监控数据显示,近1个月截获的“短信拦截”类样本变种数量超过10万,影响用户数达数百万之多。“短信拦截”木马作为安卓手机病毒中的一类常见样本,近两年来显现出爆发增长的趋势,其背后的黑色产业链也日益发展壮大,“短信拦截马”的日趋泛滥已经成为移动支付、网银财产等各环节的焦点安全问题
阅读全文
posted @ 2016-09-06 08:52
chinalorin'blogs
摘要:2011年中旬,Linux内核官网kernel.org遭到黑客入侵,攻击者植入了rootkit Phalanx,并在服务器上设置了SSH后门,kernel.org为此关闭了三周多时间。官方表示将会公开有关此次入侵的报告,但这一承诺并未兑现,直到现在:美国司法部发表新闻稿,宣布佛罗里达警方于8月28日
阅读全文
posted @ 2016-09-06 08:49
chinalorin'blogs
摘要:记录每次更新到仓库 现在我们手上已经有了一个真实项目的 Git 仓库,并从这个仓库中取出了所有文件的工作拷贝。接下来,对这些文件作些修改,在完成了一个阶段的目标之后,提交本次更新到仓库。 请记住,工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件
阅读全文
posted @ 2016-09-05 09:14
chinalorin'blogs
摘要:有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。 在工作目录中初始化新仓库 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行: $ git init 初始化后,在当前目录
阅读全文
posted @ 2016-09-05 08:50
chinalorin'blogs
摘要:想了解 Git 的各式工具该怎么用,可以阅读它们的使用帮助,方法有三: $ git help <verb> $ git <verb> --help $ man git-<verb> $ git help <verb> $ git <verb> --help $ man git-<verb> 比如,要
阅读全文
posted @ 2016-09-05 08:49
chinalorin'blogs
摘要:一般在新的系统上,我们都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配置。 Git 提供了一个叫做 git config 的工具(译注:实际是 git-config 命令,只不过可以通过 git 加一个名字来呼
阅读全文
posted @ 2016-09-05 08:48
chinalorin'blogs
摘要:那么,简单地说,Git 究竟是怎样的一个系统呢?请注意,接下来的内容非常重要,若是理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余。在开始学习 Git 的时候,请不要尝试把各种概念和其他版本控制系统(诸如 Subversion 和 Perforce 等)相比拟,否则容易混淆每个操
阅读全文
posted @ 2016-09-05 08:47
chinalorin'blogs
摘要:是时候动手尝试下 Git 了,不过得先安装好它。有许多种安装方式,主要分为两种,一种是通过编译源代码来安装;另一种是使用为特定平台预编译好的安装包。 从源代码安装 若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本。Git 的每个版本都在不断尝试改进用户体验,所以能通过源代码自己编译安装最
阅读全文
posted @ 2016-09-05 08:47
chinalorin'blogs
摘要:同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理
阅读全文
posted @ 2016-09-05 08:46
chinalorin'blogs
摘要:什么是版本控制?我为什么要关心它呢?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。 如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件
阅读全文
posted @ 2016-09-05 08:45
chinalorin'blogs
摘要:我们经常想要统计项目的代码行数,但是如果想统计功能比较完善可能就不是那么简单了, 今天我们来看一下如何用python来实现一个代码行统计工具。 思路:首先获取所有文件,然后统计每个文件中代码的行数,最后将行数相加. 实现的功能: 统计每个文件的行数; 统计总行数; 统计运行时间; 支持指定统计文件类
阅读全文
posted @ 2016-09-05 08:36
chinalorin'blogs
摘要:另类的写法有惊喜 我们在阅读某些源代码的时候会发现有一种另类的写法,比如 //异常写法 if(false == $result) //正常写法 if($result == false) 其实这是一种很聪明的写法,它可以很大程度上杜绝手误造成的严重bug。 假如我们在正常方法中把 == 误写成 = ,
阅读全文
posted @ 2016-09-05 08:34
chinalorin'blogs
摘要:新增操作符1、??$username = $_GET['user'] ?? '';$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';2、<=>$number1 <=> $number2; 当 $number1 小于、等于、大于 $
阅读全文
posted @ 2016-09-05 08:31
chinalorin'blogs
摘要:1、ant项目 build.xml必须位于项目根目录。 build.xml必须位于项目根目录。 2、maven项目 pom.xml必须位于项目根目录。 pom.xml必须位于项目根目录。 3、gradle项目 由于gradle的配置灵活,我们做了一些规范,并且增加了一下机制来处理签名问题。 由于gr
阅读全文
posted @ 2016-09-05 08:29
chinalorin'blogs
摘要:vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率。 1.多行注释: 1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式; 2. 在行首使用上下键选择需要注释的多行; 3. 按下键盘(大写)“I”键,进入插入模式; 4. 然后输入注释
阅读全文
posted @ 2016-09-01 16:24
chinalorin'blogs
摘要:inux查找文件或目录命令,前提:知道文件或者目录的具体名字,例如:sphinx.conf find 查找 find / -name dirname 查找目录 find -name filename 查找文件shell# find -name sphinx.conf
阅读全文
posted @ 2016-09-01 16:17
chinalorin'blogs
摘要:1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn addfile 例如:svn add test.ph
阅读全文
posted @ 2016-09-01 16:16
chinalorin'blogs
摘要:其实这个题目有点大,这里介绍的只是linux和windows文件传输中的一种,但是这种方法却非常实用,那就是:ZModem协议具体是linux命令是:rz和sz但是其实它们是两个非常方便的工具。 rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具,windows端需
阅读全文
posted @ 2016-09-01 16:15
chinalorin'blogs
摘要:IP:网络层协议; TCP和UDP:传输层协议; HTTP:应用层协议; SOCKET:TCP/IP网络的API。 TCP/IP代表传输控制协议/网际协议,指的是一系列协议。 TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电
阅读全文
posted @ 2016-09-01 16:13
chinalorin'blogs
摘要:将一下代码copy到 用户目录下 新建文件为 .vimrc 保存即可生效; 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份) set nocompatible " 关闭 vi 兼容模式 syntax on " 自动语法高亮 colorscheme molokai " 设定配色方案
阅读全文
posted @ 2016-09-01 16:10
chinalorin'blogs
摘要:MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是
阅读全文
posted @ 2016-09-01 10:27
chinalorin'blogs
摘要:var_dump() void var_dump ( mixed expression [, mixed expression [, ...]] ) var_dump()方法是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.此函数显示关于一个或多个表达式的结构信
阅读全文
posted @ 2016-09-01 10:18
chinalorin'blogs
摘要:Netstat -tln 命令是Linux查看端口使用情况 /etc/init.d/vsftp start 是用来启动ftp端口~! 看文件/etc/services netstat Linux查看端口查看已经连接的服务端口(ESTABLISHED) netstat -a Linux查看端口查看所有
阅读全文
posted @ 2016-09-01 10:12
chinalorin'blogs
摘要:1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql> SHOW DATABASES;2:2、创建一个数据库MYSQLDATAmysql> CREATE DATABASE MYSQLDATA;3:选择你所创建的数据库mysql> USE MYSQLDATA; (按回车键出现Databas
阅读全文
posted @ 2016-09-01 10:10
chinalorin'blogs
摘要:在php中mb_substr()函数是用来截中文与英文的函数,可以方便快速的解决截取指定字符长度的问题 提示:mb_substr在于php中是默认不被支持的我们需要在在windows目录下找到php.ini打开编辑,搜索mbstring.dll,找到;extension=php_mbstring.d
阅读全文
posted @ 2016-09-01 10:09
chinalorin'blogs
摘要:explode() 函数把字符串分割为数组。 语法 explode(separator,string,limit) 例子: $str = "Hello world. It's a beautiful day.";print_r (explode(" ",$str));?> 输出: Array([0]
阅读全文
posted @ 2016-09-01 10:06
chinalorin'blogs
摘要:方法一date函数 //2016-09-1 10:00:08 方法二 time函数 $time = time(); echo date("y-m-d",$time) //2016-09-1 方法三 $_server['server_time'] 方法四 strftime echo strftime
阅读全文
posted @ 2016-09-01 10:01
chinalorin'blogs
摘要:1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊
阅读全文
posted @ 2016-09-01 09:56
chinalorin'blogs
摘要:允许使用环境变量配置,并且优先级别比在配置文件中要高,因为在读取配置参数的时候,首先会判断环境变量中是否存在该配置。 在开发过程中,可以在应用根目录下面的.env来模拟环境变量配置,.env文件中的配置参数定义格式采用ini方式,例如: 如果你的部署环境单独配置了环境变量,那么请删除.env配置文件
阅读全文
posted @ 2016-09-01 09:44
chinalorin'blogs
摘要:作用域 配置参数支持作用域的概念,默认情况下,所有参数都在同一个系统默认作用域下面。如果你的配置参数需要用于不同的项目或者相互隔离,那么就可以使用作用域功能,作用域的作用好比是配置参数的命名空间一样。
阅读全文
posted @ 2016-09-01 09:43
chinalorin'blogs
摘要:设置配置参数 使用set方法动态设置参数,例如: 也可以批量设置,例如:
阅读全文
posted @ 2016-09-01 09:42
chinalorin'blogs
摘要:独立配置文件 新版支持配置文件分离,只需要配置extra_config_list参数(在应用公共配置文件中)。 例如,不使用独立配置文件的话,数据库配置信息应该是在config.php中配置如下: 如果需要使用独立配置文件的话,则首先在config.php中添加配置: 定义之后,数据库配置就可以独立
阅读全文
posted @ 2016-09-01 09:42
chinalorin'blogs
摘要:读取配置参数 设置完配置参数后,就可以使用get方法读取配置了,例如: 系统为get方法定义了一个助手config,以上可以简化为: 读取所有的配置参数: 或者你需要判断是否存在某个设置参数: 如果需要读取二级配置,可以使用:
阅读全文
posted @ 2016-09-01 09:41
chinalorin'blogs
摘要:ThinkPHP支持多种格式的配置格式,但最终都是解析为PHP数组的方式。 PHP数组定义 返回PHP数组的方式是默认的配置定义格式,例如: //项目配置文件 return [ // 默认模块名 'default_module' => 'index', // 默认控制器名 'default_cont
阅读全文
posted @ 2016-09-01 09:40
chinalorin'blogs
摘要:ThinkPHP支持多种格式的配置格式,但最终都是解析为PHP数组的方式。 PHP数组定义 返回PHP数组的方式是默认的配置定义格式,例如: 配置参数名不区分大小写(因为无论大小写定义都会转换成小写),新版的建议是使用小写定义配置参数的规范。 还可以在配置文件中可以使用二维数组来配置更多的信息,例如
阅读全文
posted @ 2016-09-01 09:38
chinalorin'blogs
摘要:ThinkPHP提供了灵活的全局配置功能,采用最有效率的PHP返回数组方式定义,支持惯例配置、公共配置、模块配置、场景配置和动态配置。 对于有些简单的应用,你无需配置任何配置文件,而对于复杂的要求,你还可以扩展自己的独立配置文件。 系统的配置参数是通过静态变量全局存取的,存取方式简单高效。 配置功能
阅读全文
posted @ 2016-09-01 09:37
chinalorin'blogs
摘要:ThinkPHP基于MVC(Model-View-Controller,模型-视图-控制器)模式,并且均支持多层(multi-Layer)设计。 模型(Model)层 默认的模型层由Model类构成,但是随着项目的增大和业务体系的复杂化,单一的模型层很难解决要求,多层Model的支持设计思路很简单,
阅读全文
posted @ 2016-09-01 09:35
chinalorin'blogs
摘要:新版ThinkPHP针对API开发做了很多的优化,并且不依赖原来的API模式扩展。 数据输出 新版的控制器输出采用Response类统一处理,而不是直接在控制器中进行输出,通过设置default_return_type或者动态设置不同类型的Response输出就可以自动进行数据转换处理,一般来说,你
阅读全文
posted @ 2016-09-01 09:35
chinalorin'blogs
摘要:ThinkPHP 5.0开始采用trait功能(PHP5.4+)来作为一种扩展机制,可以方便的实现一个类库的多继承问题。 Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。Traits
阅读全文
posted @ 2016-09-01 09:34
chinalorin'blogs
摘要:概述 ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载。 自动加载的实现由think\Loader类库完成,自动加载规范符合PHP的PSR-4。 自动加载 由于新版ThinkPHP完全采用了命名空间的特性,因此只需要给类库正确定义
阅读全文
posted @ 2016-09-01 09:33
chinalorin'blogs
摘要:命名空间 ThinkPHP采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制。 如果不清楚命名空间的基本概念,可以参考PHP手册:PHP命名空间 特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用
阅读全文
posted @ 2016-09-01 09:32
chinalorin'blogs
摘要:5.0版本对模块的功能做了灵活设计,默认采用多模块的架构,并且支持单一模块设计,所有模块的命名空间均以app作为根命名空间(可配置更改)。 目录结构 标准的应用和模块目录结构如下: 遵循ThinkPHP5.0的命名规范,模块目录全部采用小写和下划线命名。 模块名称请避免使用PHP保留关键字(保留字列
阅读全文
posted @ 2016-09-01 09:31
chinalorin'blogs
摘要:URL设计 ThinkPHP5.0在没有启用路由的情况下典型的URL访问规则是: http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...] 支持切换到命令行访问,如果切换到命令行模式下面的访问规则是: >php.exe index.
阅读全文
posted @ 2016-09-01 09:30
chinalorin'blogs
摘要:ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。 应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。 入口文件定义 入口文件主要完成: 定义框架路径、项目路径(可选) 定义系统相关常量(可选) 载入框架入口文件(
阅读全文
posted @ 2016-09-01 09:29
chinalorin'blogs
摘要:本篇内容我们对ThinkPHP5.0的应用请求的生命周期做大致的介绍,以便于开发者了解整个执行流程。 1、入口文件 用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件。当然,你也可以更改或者增加新的入口文件。 通常入口文件的代码都比较简单,一个普通的入口文件代码如下:
阅读全文
posted @ 2016-09-01 09:28
chinalorin'blogs
摘要:ThinkPHP5.0应用基于MVC(模型-视图-控制器)的方式来组织。 MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。 5.0的URL访问受路由决定,如果关闭路由或者没有匹配路由
阅读全文
posted @ 2016-09-01 09:27
chinalorin'blogs
摘要:下载最新版框架后,解压缩到web目录下面,可以看到初始的目录结构如下: 5.0的部署建议是public目录作为web目录访问内容,其它都是web目录之外,当然,你必须要修改public/index.php中的相关路径。如果没法做到这点,请记得设置目录的访问权限或者添加目录列表的保护文件。 route
阅读全文
posted @ 2016-09-01 09:26
chinalorin'blogs
摘要:命名规范 ThinkPHP5遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范: 目录和文件 目录不强制规范,驼峰及小写+下划线模式均支持; 类库、函数文件统一以.php为后缀; 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致; 类名和类文件名保持一致,统一采用驼
阅读全文
posted @ 2016-09-01 09:25
chinalorin'blogs
摘要:ThinkPHP5的环境要求如下: PHP >= 5.4.0 PDO PHP Extension MBstring PHP Extension CURL PHP Extension 严格来说,ThinkPHP无需安装过程,这里所说的安装其实就是把ThinkPHP框架放入WEB运行环境(前提是你的WE
阅读全文
posted @ 2016-09-01 09:24
chinalorin'blogs
摘要:单块结构的内核:由几个逻辑上独立的成分构成,单块结构,大多数据商用Unix变体也是单块结构; 编译并静态连接的传统Unix内核:Linux能自动按需动态地装载和卸载部分内核代码(模块),而传统Unix内核仅支持静态连接; 内核线程:Linux以一种十分有限的方式使用内核线程来周期性地执行几个内核函数
阅读全文
posted @ 2016-09-01 09:20
chinalorin'blogs

浙公网安备 33010602011771号