最近的文章列表

有时客户是很贪得无厌的 客户需求就是这样无限膨胀的

第 00 天,客户:我们以前一个系统由于做得比较仓促,都没有做登录验证,你帮我们做一个吧。程序员:最近没空呢。客户:这个东西很简单,就一个用户名、密码登录,对你们来说分分钟的事情,这样吧,加个班,给你一千块钱,怎么样?程序员:好吧。

第 01 天,功能做好了。

第 02 天,客户说:增加一个用户名记住功能吧,免得每次都输。

第 03 天,客户说:用户名记住都做了,密码记住也做了吧。

2014/7/25 Comments:
解决CI(codeigniter)框架在CLI下执行占用内存过大问题的方法

很多程序员在使用codeigniter CLI下执行一个大批量数据导入的问题时,会一直出现内存过高的情况,下面对此分析器原因及解决办法。

CI db会将所有的查询sql和和sql执行时间保存下来,对于类似百万级大数据量的导入问题来说,其执行的sql记录都会被保存在内容中,这就占用了大量的内容直至脚本结束。

解决办法:
当你执行大数量的db操作时,记得设置:

代码如下:
$this->db->save_queries = FALSE;
2014/7/25 Comments:
PHP MVC框架 CodeIgniter CLI模式简介

让我们以Hello World为例,首先创建一个简单的控制器。使用你的文本编辑器,创建一个叫做 tools.php 的文件,并且输入如下代码:

代码如下:
<?php
class Tools extends CI_Controller {

  public function message($to = 'World')
2014/7/25 Comments:
分享Smarty模板局部缓存方法使用示例

在开启smarty缓存的情况下,第一次执行时会将其编译好的输出文件保存到cache目录中,然后在程序中通过smarty的is_cache()函数检测其 cache文件是否过期,如果过期会更新缓存,如果没有过期会自动调用cache文件,这样就省去了编译的过程。检测cache过期是看模板文件是否在指定的生命周期内是否更改,这里的更改是通过检测文件的最近修改时间实现的,不是通过检测模板文件内容。


防止一个模板文件的整篇都被缓存:

index.php文件:

代码如下:
require('smarty.class.php'); 
2014/7/25 Comments:
简介php的Smarty局部缓存的几种方法

很多时候我们在用smarty时,并不希望缓存整个页面,例如天气、股票等这类即时更新的信息。那么我们可以让其不缓存,常见的实现有如下3种方法:

1.insert 法:

Insert 函数类似于 inluce 函数,不同之处是 insert 所包含的内容不会被缓存,每次调用该模板都会重新执行该函数。比如说我们定义一个显示时间的函数:

代码如下:
function insert_get_current_time() {
2014/7/24 Comments:
ThinkPHP内置的表单令牌验证的实例详解

ThinkPHP内置了表单令牌验证功能,可以有效防止表单的远程提交等安全防护。
表单令牌验证相关的配置参数有:


'TOKEN_ON'=>true, // 是否开启令牌验证 
'TOKEN_NAME'=>'__hash__', // 令牌验证的表单隐藏字段名称
'TOKEN_TYPE'=>'md5', //令牌哈希验证规则 默认为MD5

如果开启表单令牌验证功能,系统会自动在带有表单的模板文件里面自动生成以TOKEN_NAME为名称的隐藏域,其值则是TOKEN_TYPE方式生成的哈希字符串,用于实现表单的自动令牌验证。

2014/7/24 Comments:
Thinkphp中的volist标签(查询数据集(select方法)的结果输出)用法简介

通常volist标签多用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,对此可以直接使用volist标签进行输出。

在控制器中首先对模版赋值,如下例所示:

$User = M('User');
$list = $User->limit(10)->select();
$this->assign('list',$list);

在模版定义如下,循环输出用户的编号和姓名:

<volist name="list" id="vo">
2014/7/24 Comments:
weebox(基于jquery的弹窗插件) 用法详解

weebox是一个基于jquery的弹窗插件,一开始只是拿了一个 jQuery Modal Dialog 来用,但那位任兄写的支持太有限了,于是就着手修改代码,但改到后面,发现基本上看不到原来的代码了,只有css样式中几张背景图留下来了,我就改了个名字。

2014/7/23 Comments:
ThinkPHP的I方法(方便和安全的获取系统输入变量)使用详解

ThinkPHP的I方法是众多单字母函数中的新成员,其命名来自于英文Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下:
I('变量类型.变量名',['默认值'],['过滤方法'])

变量类型是指请求方式或者输入类型。

各个变量类型的含义如下:

2014/7/23 Comments:
ThinkPHP Mobile(APP)使用方法基础教程

一、基础知识

1.手机APP的类型

移动端的应用有这几种:WebApp,NativeApp,HybridApp。

WebApp 就是手机网站,需要用手机浏览器访问。

NativeApp是用原生语言开发,用户需要下载安装的手机应用。 NativeApp的开发成本很高,每个平台的开发语言都不一样, 比如IOS的开发语言是object C , Android系统的APP需要用Java开发, WindowsPhone 则需要用 C# 开发。那么我们如果需要做一个多平台都能运行的APP,需要用多种语言

2014/7/22 Comments: