随笔分类 -  PHP

摘要:本文内容Zend_Controller工作流程路由器 Zend_Controller_Router分发器 Zend_Controller_Dispatcher动作控制器 Zend_Controller_Action插件 Zend_Controller_Plugin总结 在 该系列的第一部分中,简要... 阅读全文
posted @ 2012-09-22 09:16 曾是土木人 阅读(1309) 评论(1) 推荐(0) 编辑
摘要:PHP构造函数的执行顺序测试代码如下:<?phpclass grandfather { public function __construct(){ echo 'grandfather'; }}class father extends grandfather { public function __construct(){ echo 'father'; }}class son extends father { public function __construct(){ echo 'son'; }}$test = n... 阅读全文
posted @ 2012-09-16 14:40 曾是土木人 阅读(1152) 评论(0) 推荐(0) 编辑
摘要:在CRM系统开发中,根据不同的用户组分配不同的权限是一件再正常不过的事情。ZF框架提供的Zend_Auth和Zend_Acl这两个组件就是用来帮我们完成类似工作的。Zend_Auth登录认证: Zend_Auth组件的使用很容易,相信大家看了下面的图文解说之后就会明白的。解释:Zend_Aut... 阅读全文
posted @ 2012-09-16 14:16 曾是土木人 阅读(3097) 评论(4) 推荐(0) 编辑
摘要:1、 Zend-Auth 认证(authentication)提供一个api并包括了一些通用用例情景的具体认证适配器Zend_Auth适配器都实现一个zend_auth_adapter_interface 这个interface定义了一个方法authenticate()class myauthada... 阅读全文
posted @ 2012-09-16 09:39 曾是土木人 阅读(2153) 评论(1) 推荐(0) 编辑
摘要:在优化数据库的,或者在导入数据的时候,知道某个数据库中哪张数据表的数据量最多,有时候对我们还是有帮助的所以自己简单写了几行代码用来实现以上需求执行结果:<?php $conn=mysql_connect('localhost','root',''); mysql_select_db('数据库',$conn); $sql="SELECT information_schema.TABLES.TABLE_NAME FROM information_schema. TABLES WHERE table_schema = & 阅读全文
posted @ 2012-09-01 17:41 曾是土木人 阅读(1643) 评论(1) 推荐(0) 编辑
摘要:转载自风雪之隅:http://www.laruence.com/2012/07/25/2662.html我从来不认为这个问题是个问题, 直到昨天.昨天晚上的时候, 我提交了一个RFC, 关于引入finally到PHP, 实现这个功能的出发点很简单, 因为我看见不少人的需求, 另外还有就是Stas说, 一直只看到讨论, 没看到有人实现. 于是我就给实现了.发到邮件组以后, 一个开发组的同学Nikita Popov(nikic), 表示强烈反对这个RFC, 当然最初的论点他说了很多, 最后我们在线讨论的时候, 他表达了一个他的观点:“PHP在请求结束后会释放所有的资源, 所以我们没有必要调用fcl 阅读全文
posted @ 2012-07-30 23:40 曾是土木人 阅读(749) 评论(2) 推荐(2) 编辑
摘要:校对集MySQL5.5.8中共有字符集39,校对集195个#显示所有的校对集Show collation#显示所有的字符集show character set所以一个字符集对应多个校对集,即同样的一个字符集有多重排序规则比如一个utf8的字符集共有22中排序规则Utf8字符集默认的校对集为utf8_general_ci通过show collation like ‘utf8\_%’即可查看注意:utf8_general_ci 按照普通的字母顺序,而且不区分大小写(比如:a B c D)utf8_bin 按照二进制排序(比如:A排在a前面,B D a c) 阅读全文
posted @ 2012-07-22 15:00 曾是土木人 阅读(314) 评论(0) 推荐(0) 编辑
摘要:在mysql客户端与mysql服务端之间,存在着一个字符集转换器。character_set_client =>gbk:转换器就知道客户端发送过来的是gbk格式的编码character_set_connection=>gbk:将客户端传送过来的数据转换成gbk格式character_set_results=>gbk:注:以上三个字符集可以使用set names gbk来统一进行设置例子:create table test(name varchar(64) NOT NULL)charset utf8;#这里的utf8表示服务器端的字符编码首先,往数据表test中插入一条数据in 阅读全文
posted @ 2012-07-22 14:56 曾是土木人 阅读(1430) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2012-07-15 18:26 曾是土木人 阅读(5) 评论(0) 推荐(0) 编辑
摘要:原创文章,转载请注明出处:http://www.cnblogs.com/hongfei/archive/2012/07/07/2580776.html简单工厂模式:①抽象基类:类中定义抽象一些方法,用以在子类中实现②继承自抽象基类的子类:实现基类中的抽象方法③工厂类:用以实例化对象看完文章再回头来看下这张图,效果会比较好 1 采用封装方式 2 3 getMessage();36 }37 }38 }39 $test=new Calc();40 // echo $test->calculate(2,3,'+');//打印:541 ... 阅读全文
posted @ 2012-07-09 14:03 曾是土木人 阅读(24742) 评论(14) 推荐(6) 编辑
摘要:简单的选择排序算法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换 1 <?php 2 class Sort{ 3 /** 4 * 简单的选择排序 5 * 6 * @param unknown_type $arr 7 */ 8 public function selectSort(&$arr) { 9 $len=count($arr);10 for ($i=0;$i<$l... 阅读全文
posted @ 2012-07-08 16:43 曾是土木人 阅读(478) 评论(0) 推荐(0) 编辑
摘要:1 <?php 2 class Sort{ 3 /** 4 * 简单的交换排序 5 * 冒泡排序初级版 6 * 这个不算是标准的冒泡排序算法,因为不满足“两两比较相邻记录”的冒泡排序思想,她更应该是最最简单的交换排序而已 7 * 思路:让每一个关键字和她后面的“每一个”关键字比较,如果大则交换 8 * 缺点:效率很低 9 */10 public function bubbleSort1(&$arr){11 $len=cou... 阅读全文
posted @ 2012-07-08 15:28 曾是土木人 阅读(1115) 评论(0) 推荐(3) 编辑
摘要:假设我们需要写一个类用来操作数据库,并同时满足以下要求:①SqlHelper类只能有一个实例(不能多)②SqlHelper类必须能够自行创建这个实例③必须自行向整个系统提供这个实例,换句话说:多个对象共享一块内存区域,比如,对象A设置了某些属性值,则对象B,C也可以访问这些属性值(结尾的例子很好的说明了这个问题) 1 <?php 2 class SqlHelper{ 3 private static $_instance; 4 public $_dbname; 5 private function __construct(){ 6 ... 阅读全文
posted @ 2012-07-07 23:25 曾是土木人 阅读(10847) 评论(5) 推荐(5) 编辑
摘要:在Zend Framework中,使用了多种设计模式。其中对数据库的封装,用到了工厂模式。首先我们先引用些概念:工厂模式:专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有其同的父类。工厂模式属于类的创建模式,通常根据自变量的不同返回不同类的实例。工厂模式的实质是由一个工厂类根据传入的参量... 阅读全文
posted @ 2012-07-06 20:12 曾是土木人 阅读(1733) 评论(2) 推荐(0) 编辑
摘要:PHP4中,不使用__construct()作为构造函数的名字,必须使用类的名字定义一个方法,就像在C++中一样。PHP5中,使用新的统一的构造函数命名方式:__construct(),当然,使用类名同样也是可以的。但是,你如果两个同时使用的话,系统默认会使用__construct()的形式。<?php class Person{ //PHP4中的方法 public function Person(){ echo "PHP4中的方法"; } ... 阅读全文
posted @ 2012-07-05 18:10 曾是土木人 阅读(1265) 评论(0) 推荐(1) 编辑
摘要:转载自:http://www.okajax.com/a/201106/php_unset.htmlPHP的unset()函数用来清除、销毁变量,不用的变量,我们可以用unset()将它销毁。但是某些时候,用unset()却无法达到销毁变量占用的内存!我们先看一个例子<?php $s=str_repeat('1',255); //产生由255个1组成的字符串 $m=memory_get_usage(); //获取当前占用内存 unset($s); $mm=memory_get_usage(); //unset()后再查看当前占用内存 echo $m-$mm; ?> 最 阅读全文
posted @ 2012-07-05 16:51 曾是土木人 阅读(1507) 评论(0) 推荐(0) 编辑
摘要:有时候,我们想输出一个变量,如果是数组的,则var_dump,如果是字符串之类的,则echo即可此时,is_scalar内置函数就派上用场了。is_scalar-- 检测变量是否是一个标量标量变量是指那些包含了 integer、float、string 或 boolean的变量,而 array、object 和 resource 则不是标量。<?phpfunction show_var($var) { if (is_scalar($var)) { echo $var; } else { var_dump($var); }}$pi = 3.1416;... 阅读全文
posted @ 2012-07-05 09:33 曾是土木人 阅读(684) 评论(1) 推荐(0) 编辑
摘要:原文地址:http://bbs.phpchina.com/thread-181395-1-2.html1,使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单了,而且加快了搜索和排序的速度(虽然有时仅仅是快了一点)。2, 在验证 email 地址的时候使用 checkdnsrr() 函数验证域名是否存在。这个内置函数能够确认指定的域名能够解析成 IP 地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义 阅读全文
posted @ 2012-07-04 21:46 曾是土木人 阅读(908) 评论(0) 推荐(1) 编辑
摘要:PHP函数点评作者:axglePHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助。1.print_r()打印关于变量的易于理解的信息,若为数组,则显示数组的结构信息.例如:<pre><?php $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z')); print_r ($a);?></pre> axgle点 阅读全文
posted @ 2012-07-04 18:13 曾是土木人 阅读(366) 评论(0) 推荐(0) 编辑
摘要:<?php/** * 用来测试一个函数或一段代码的执行速度 * @author MarcoFly */class Base_RunTime{ private $_startTime;//开始时间 private $_endTime;//结束时间 public function startTime(){ list($usec,$sec)=explode(' ',microtime()); $this->_startTime=$sec+$usec; } public function endTime(){ list($... 阅读全文
posted @ 2012-07-04 17:31 曾是土木人 阅读(565) 评论(0) 推荐(0) 编辑