文章分类 -  php

摘要:functionunescape($str){$str= rawurldecode($str);preg_match_all("/&#(d+);/U",$str,$r);$arr=$r[1];$cstr=array();foreach($arras$number){$cstr[] = iconv("UCS-2","GBK",pack("n",$number));}returnjoin("",$cstr);}unescape(’醉爱’); 阅读全文
posted @ 2014-04-04 17:23 wint 阅读(134) 评论(0) 推荐(0)
摘要:requirerequire_onceControl StructuresPHP Manualinclude()Theinclude()statement includes and evaluates the specified file.The documentation below also applies torequire().Files are included based on the file path given or, if none is given, theinclude_pathspecified. Theinclude()construct will emit awa 阅读全文
posted @ 2014-04-04 17:23 wint 阅读(623) 评论(0) 推荐(0)
摘要:add方法返回主键(id)的值在往数据表中添加数据时调用add方法,默认返回值就是刚添加的id值,就不用再去查询了.save方法返回值的判断在修改数据时,如果修改成功返回的是被修改的记录数0,1,2,3......注意:以下几种情况返回 false,所以判断更新失败应使用 if(false === $this->save())(1)更新的数据为空(2)_before_update()方法返回false(3)没有任何更新条件(没有定义where()里的条件,或者保存的数据里没有主键的值)查询后置方法详解如_after_select,_after_insert,_after_update,_ 阅读全文
posted @ 2014-04-04 17:23 wint 阅读(112) 评论(0) 推荐(0)
摘要:Windows PHP 加速器WinCache分享到新浪微博腾讯微博已用+1收藏+21微软新推出了配合FastCGI模式使用的WinCache扩展,这是一个可以显著增加PHP应用在Windows环境下使用速度的PHP加速器。所有的PHP应用都能够利用这个扩展所提供的加速功能而不需要修改任何代码。所有需要做的就是将这个扩展激活并被PHP引擎读取。与eAccelerator正好相反的是WinCache要求使用NTS(非线程安全)版本的PHP,因此更适合与FastCGI配合使用。WinCache扩展包括了三种不同种类的缓存使用,下面将要分别介绍这三种缓存和他们所能提供的便利。•PHP操作码缓存PHP 阅读全文
posted @ 2014-04-04 17:23 wint 阅读(404) 评论(0) 推荐(0)
摘要:HTTP的重定向301,302,303,307(转)(2012-12-11 11:55:04)转载▼标签:杂谈分类:网络301 永久重定向,告诉客户端以后应从新地址访问.302 作为HTTP1.0的标准,以前叫做Moved Temporarily ,现在叫Found. 现在使用只是为了兼容性的处理,包括PHP的默认Location重定向用的也是302.但是HTTP 1.1 有303 和307作为详细的补充,其实是对302的细化303:对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI。307:对于POST请求,表示请求还没有被处理,客户端应该向 阅读全文
posted @ 2014-04-04 17:23 wint 阅读(178) 评论(0) 推荐(0)
摘要:php变量作用域摘自:http://www.qianyunlai.com.com/blog/220.htmlPHP 中的每个变量都有一个针对它的作用域,它是指可以在其中访问变量(从而访问它的值)的一个领域。对于初学者来说,变量的作用域是它们所驻留的页面。因此,如果你定义了 $var,页面余下部分就可以访问 $var,但是,其它页面一般不能访问它(除非使用特殊的变量)。 因为包含文件像它们是原始(包含)脚本的一部分那样工作,所以在 include() 那一行之前定义的变量可供包含文件使用。此外,包含文件内定义的变量可供 include() 那一行之后的父(包含)脚本使用。 当使用你自己定义的.. 阅读全文
posted @ 2014-04-04 17:23 wint 阅读(123) 评论(0) 推荐(0)
摘要:对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结。命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。例:项目中有两个模块:article和message board,它们各自有一个处理用户留言的类Comment。之后我可能想要增加对所有用户留言的一些信息统计功能,比如说我想得到所有留言的数量。这时候调用它们Comment提供的方法是很好的做法,但是同时引入各自的Comment类显然是不行的,代码会出错,在另一个地方重写任何一个Comment 阅读全文
posted @ 2014-04-04 17:23 wint 阅读(128) 评论(0) 推荐(0)
摘要:ThinkPHP的CURD易忽视点小结1、不定义方法,直接渲染模板。对于没有任何实际逻辑的操作方法,我们只需要直接定义对应的模板文件就行了,比如表单页面,这个页面一般不会有变量向模板中输出,所以,我们没有必要再去写一个对应的空方法然后$this->display()了。2、简介create方法。假设我们实例化的模型为$model,那么ThinkPHP可以直接通过$model->add()的方式向数据库中添加数据,那么如果我们在$model->add()之前调用$model->create()方法,这样有什么意义呢?create()方法的意义只有一个“确保写入数据库的数据 阅读全文
posted @ 2014-04-04 17:23 wint 阅读(143) 评论(0) 推荐(0)
摘要:继续分享:循环输出volist 还有别名 iterate模版赋值:$User = D('User')$list = $User->findAll()$this->assign('list',$list)模版定义:{$vo.name}注意 name 和 id 表示的含义// 输出 list 的第 5~15 条记录{$vo.name}// 输出偶数记录{$vo.name}// 输出 key{$k}.{$vo.name}//子循环输出{$sub.name}Switch 标签value1value2default其 中name 属性可以使用函数以及系统变量, 阅读全文
posted @ 2014-04-04 17:22 wint 阅读(126) 评论(0) 推荐(0)
摘要:找了一些使用THinkPHP的心得和技巧,分享给大家约定:1.所有类库文件必须使用.class.php作为文件后缀,并且类名和文件名保持一致2.控制器的类名以Action为后 缀3.模型的类名以Model为后缀,类名第一个字母须大写4.数据库表名全部采用小写,如:数据表名: 前缀_表名模型类名: 表名Model 注:这里的表名第一个字母要大写创建对象: D('表名') 注:这里的表名第一个字母要大写定义控制器类class IndexAction extends Action{public function show(){echo '这是新的 show 操作';} 阅读全文
posted @ 2014-04-04 17:22 wint 阅读(131) 评论(0) 推荐(0)
摘要:$max){/* Less than 15 seconds since last failure */}elseif ($record['password'] == $clean['password']){/* Successful Login */}else{/* Failed Login */$sql = "UPDATE usersSET last_failure = '$now'WHERE username = '{$mysql['username']}'";mysql_query($sq 阅读全文
posted @ 2014-04-04 17:21 wint 阅读(595) 评论(0) 推荐(0)
摘要:1.Registry是一个全局注册表//base.phpstatic function instance() { if (!Registry::exists($class=get_called_class())) { $ref=new Reflectionclass($class); $args=func_get_args(); Registry::set($class, $args?$ref->newinstanceargs($args):new $class); } return Registry::get($class); }2. class AlipayPlugin extend 阅读全文
posted @ 2014-04-04 17:20 wint 阅读(128) 评论(0) 推荐(0)
摘要:3.1. 开源框架bzfshop 采用了很多开源的框架和库来组织我们整个代码,这些开源库是你首先需要了解的东西,否则一些代码调用你会完全看不懂。如果你对这些开源系统不熟悉的话,建议你先 Google 学习这些开源系统,通读它们的文档,等你对这些系统本身已经有足够的了解之后再去看 bzfshop 的代码。F3: Fat Free Framework 是一个 PHP 框架,我们用它实现了 路由、缓存、数据库访问,了解F3 框架是读懂 bzfshop 的第一步。我们使用 F3 框架最主要的原因就是它够小、够轻、够用。Smarty: PHP 著名的模版引擎,关于 PHP 是否有必要用模版还有很多的争论 阅读全文
posted @ 2014-04-04 17:20 wint 阅读(443) 评论(0) 推荐(0)
摘要:类与对象在线手册:中文英文PHP手册后期静态绑定从PHP 5.3.0开始,PHP增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。该功能从语言内部角度考虑被命名为”后期静态绑定“。”后期绑定“的意思是说,static::不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为”静态绑定“,因为它可以用于(但不限于)静态方法的调用。self::的限制使用self::或者__CLASS__对当前类的静态引用,取决于定义当前方法所在的类:Example #1self::用法以上例程会输出:A后期静态绑定的用法后期静态绑定试图通过引入一个关键字表示运行时最初调用的类来绕 阅读全文
posted @ 2014-03-31 18:16 wint 阅读(199) 评论(0) 推荐(0)
摘要:1。数据库create table country(id int(11) not null auto_increment,countryName varchar(64) not null,primary key(id));create table states(id int(11) not null auto_increment,countryId int not null,stateName varchar(64) not null,primary key(id));insert into states values(1,1,'U.P.'),(2,1,'Uttarak 阅读全文
posted @ 2014-03-31 17:37 wint 阅读(132) 评论(0) 推荐(0)
摘要:1.sqlcreate table users(id int(11) not null auto_increment,username varchar(32) not null,password varchar(32) not null,primary key(id));2.insert into users values(1,'holmes','sherlockhlmes'),(2,'watson','johnwatson'),(3,'sati','dd'),(4,'mantu', 阅读全文
posted @ 2014-03-31 17:35 wint 阅读(215) 评论(0) 推荐(0)