最近的文章列表

详解ThinkPHP3.1.2版本之模板继承

模板继承是ThinkPHP3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载。

因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块。
每个区块由<block></block>标签组成,并且不支持block标签的嵌套。
下面就是基础模板中的一个典型的区块设计(用于设计网站标题):

2014/7/4 Comments:
详解ThinkPHP3.1.2版本之模块和操作映射

模板和操作映射功能是ThinkPHP3.1.2版本支持的对模块和操作设置的映射机制,由于可以通过改变配置动态改变(实际真正改变,并非别名)URL访问地址,加强了应用的安全性,而且,映射机制具有URL不区分大小写访问的特性,对于应用的迁移也有很大的帮助。

因为,普通情况下,如果需要更改URL的模块或者操作访问的话,需要改动的文件较多,容易导致关联性出错。尤其是很多应用需要迁移到新版本的时候,由于模型和控制器改动较多,导致URL地址出现大的调整,通过模块和操作映射功能,就可以很轻松的解决此类问题。

1.模块映射

要定义模块映射,我们只需要在配置文件中定义:

2014/7/3 Comments:
解决ThinkPHP访问不存在的模块跳转到404页面的方法(apache,IIS服务器配置)

首先在ACTION中新建一个文件EmptyAction.class.php,其代码如下:

<?php 
class EmptyAction extends Action{
function _empty(){
header("HTTP/1.0 404 Not Found");//使HTTP返回404状态码
$this->display("Public:404");
}
}
?>

使用apache服务器的情况下需在apache中的网站配置中加入 ErrorDocument 404 /404.html

2014/7/3 Comments:
ThinkPHP3.1.3版本发布的新特性概述

ThinkPHP3.1.3版本有一些特性,还是值得关注的,下面来简单说下。

1、异常方面的改进

新版的ThinkPHP3.1.3重写了异常类ThinkException(其实是完全简化成了直接继承系统Exception类),并且把异常逻辑改进封装到Think类中。主要涉及到Think类的appException方法和halt函数。
并且改进后的异常处理支持系统致命错误的捕获,Think类增加了fatalError方法,原理是使用了

register_shutdown_function(array('Think','fatalError')
2014/7/3 Comments:
ThinkPHP3.1数据CURD(增删改查)操作快速入门

1.CURD概述:

CURD是一个数据库技术中的缩写词,一般的项目开发的各种参数的基本功能都是CURD。它代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。CURD 定义了用于处理数据的基本原子操作。之所以将CURD提升到一个技术难题的高度是因为完成一个涉及在多个数据库系统中进行CURD操作的汇总相关的活动,其性能可能会随数据关系的变化而有非常大的差异。

CURD在具体的应用中并非一定使用create、update、read和delete字样的方法,但是他们完成的功能是一致的。例如,ThinkPHP就是使用add、save、select和delete方法表示模型的CURD操作

2014/7/2 Comments:
ThinkPHP3.1查询语言汇总详解

ThinkPHP的查询语言配合连贯操作可以很好解决复杂的业务逻辑需求,本篇我们就首先来深入了解下框架的查询语言。

1.查询语言介绍

ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作,查询条件可以用于读取、更新和删除等操作,主要涉及到where方法等连贯操作即可,无论是采用什么数据库,你几乎采用一样的查询方法(个别数据库例如Mongo在表达式查询方面会有所差异),系统帮你解决了不同数据库的差异性,因此我们把框架的这一查询方式称之为查询语言。查询语言也是ThinkPHP框架的ORM亮点,让查询操作更加简单易懂。下面来一一讲解查询语言的内涵。

2.查询方式

2014/7/2 Comments:
requirejs config里shim配置说明 多文件依赖关系声明

定义功能模板define

define('camnpr', ['/js/camnpr/camnpr.min.js'], function (require, exports, module) {
     return camnpr;
})

实例:以require加载UEditor,配置他们的依赖关系。可以把下边的代码,直接写到require.js文件里,这个方便管理和加载配置,同时减少一个单独config文件的加载,同时也避免了因为require.js和 config.js加载顺序不同造成的错误。

2014/7/2 Comments:
如何解密 “ PHP 神盾解密工具 ” 利用php_apd扩展

其实对神盾解密并没有那么感兴趣,只是看到了作者把工具又加密了,感觉不爽。研究了一下,其实解密没那么复杂。

利用php_apd扩展很轻松地就这把这搞定了。只有四句代码。

<?php
rename_function('gzuncompress','new_gzuncompress');
override_function('gzuncompress', '$arg', 'print(new_gzuncompress($arg)); return new_gzuncompress($arg);');
require_once 'decryption.php';
2014/7/2 Comments:
PHP扩展CURL的用法详解

实现的功能:

1、实现远程获取和采集内容

2、实现PHP 网页版的FTP上传下载

3、实现模拟登陆:去一个邮件系统,curl可以模拟cookies

4、实现接口对接(API),数据传输等:通过一个平台发送短信啊,抓取和传递所传输的信息。

5、实现模拟Cookie等:登陆的状态下才可以操作一些属性。

如何使用CURL功能

默认情况加PHP是不支持CURL的,需要在php.ini中开启该功能

;extension=php_curl.dll前面的分号去掉

1  整个操作过程中第一步是用cur_init

2014/7/2 Comments:
Windows下配置apache+php+mysql时出现问题的处理方法

windows:

安装apache,php,mysql

遇到的各种问题:

1. test.php运行不起,发现是httpd.conf中忘加AddType application/x-httpd-php .php了;

2. 设置好配置文件,发现会报一个date函数的关于时区的警告,把php中的date.timezone加上date.timezone = Asia/Shanghai;

3. 老是报Call to undefined function openssl_get_publickey,把php.ini中的extension=php_openssl.dll打开;还是报错,发现安装的是httpd-2.2

2014/7/2 Comments: