- 《PHP设计模式介绍》第十一章代理模式2008-06-14 14:59:30
- 因为某个对象消耗太多资源,而且你的代码并不是每个逻辑路径都需要此对象, 你曾有过延迟创建对象的想法吗 ( if和else就是不同的两条逻辑路径) ? 你有想过限制访问某个对象,也就是说,提供一组方法给普通用户,特别方法给管理员用户?以上两种需求都非常类似,并且都需要解决...
- 《PHP设计模式介绍》第十章规范模式2008-06-14 14:01:15
- 在一个应用软件的成型过程中,一些意想不到的商业逻辑到处出现。比如,基于价格的考虑,这个任务必须减少项目;而那个任务也因为销售税而必须选择合适的比率;而其它的任务也必须因为其他的特别条件而终止。一些商业规则是简单的,只需要不到一两个布尔比较关系就够了,...
- 《PHP设计模式介绍》第九章观测模式2008-06-14 13:52:14
- 一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力。当对象们连接在一起时,它们就可以相互提供服务和信息。
通常来说,当某个对象的状态发生改变时,你仍然需要对象之间能互相通信。但是出于各种原因,你也许并不愿意因为代码环境的改变而对代码做大的...
- 《PHP设计模式介绍》第八章迭代器模式2008-06-13 13:55:18
- 类中的面向对象编程封装应用逻辑。类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态。单独的对象是一种组织代码的有用方法,但通常你会处理一组对象或者集合。
属性来自 SQL 查询的一组数据就是一个集合,就像本书前面章节介绍的 Monopoly 游戏示例的对...
- 《PHP设计模式介绍》第七章策略模式2008-06-13 13:42:47
- 在编写面向对象的代码的时,有些时候你需要一个能够自己根据不同的条件来引入不同的操作对象实例。例如,一个菜单功能能够根据用户的“皮肤”首选项来决定是否采用水平的还是垂直的排列形式,或者一个计费系统可以自行根据用户的收货地址来决定税率。
一般来...
- 《PHP设计模式介绍》第六章伪对象模式2008-06-13 13:24:53
- 面向对象的编程之所以丰富多彩,部分是由于对象间的相互联系与作用。一个单一的对象就能封装一个复杂的子系统,使那些很复杂的操作能够通过一些方法的调用而简化。(无所不在的数据库连接就是这样的一个对象实例。)
然而经常有这样的情况,对象间的交互性是如此复杂以...
- 《PHP设计模式介绍》第五章注册模式2008-06-13 12:26:11
- 我们通常认为避免使用全局变量是一种好的选择,因此,对象经常被作为参数从一段代码传递到另一段。但是传递实例的一个问题就是对象有时候不知道将要传递给谁——?经过一个函数后才被传递到真正需要这个对象的函数。
为了编写,阅读,修改代码的方便,最好能够...
- 《PHP设计模式介绍》第四章单件模式2008-06-13 11:43:31
- 几乎所有面向对象的程序中,总有一两个资源被创建出来,在程序应用中持续被共享使用。例如,这样的一个资源,在一个电子商务程序的数据库连接中使用:这个连接在应用程序启动时初始化,程序于是可以有效的执行;当程序结束时,这个连接最终被断开并销毁。如果是你写的代...
- 《PHP设计模式介绍》第三章工厂模式2008-06-13 09:49:10
- 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象...
- 《PHP设计模式介绍》第二章值对象模式2008-06-13 09:39:23
- 在所有的最简单的程序中,大多数对象都有一个标识,一个重要的商业应用对象,例如一个Customer或者一个SKU,有一个或者更多的属性---id,name,email地址,这样可以把它从同一个类的其他实例区分开来。此外,对象有一个恒定的标识:它是贯穿于整个应用程序的一个唯一的标识...
- 《PHP设计模式介绍》第一章编程惯用法2008-06-13 09:33:04
- 学习一门新的语言意味着要采用新的惯用法。这章将介绍或者可能重新强调一些惯用法。你会发现这些惯用法在你要在代码中实现设计模式时候是非常有用的。
在这里总结的许多编程惯用法都是很值得做为单独一个章节的,甚至一本书的。你应该把这章做为PHP模式设计使用惯用法...
- 《PHP设计模式介绍》导言2008-06-13 09:27:19
- 当你在不断的试图从你的应用程序中发现新的特征时,你是否发现你提出的解决方法和一些以前你已经实现的东西是如此的类似呢?如果你是一个程序员(即使你才 开始很短的时间),你都可能回答“是”。这看起来就是你使用了一些以前的代码来解决软件开发过程中新...
- phpescapeshellcmd多字节编码漏洞2008-05-28 16:31:03
- 漏洞公告在http://www.sektioneins.de/advisories/SE-2008-03.txt
PHP 5 <= 5.2.5
PHP 4 <= 4.4.8
一些允许如GBK,EUC-KR, SJIS等宽字节字符集的系统都可能受此影响,影响还是非常大的,国内的虚拟主机应该是通杀的,在测试完这个漏洞之后,发现还是十分有意...
- 详细讲解PHP中缓存技术的应用2008-05-28 16:22:56
- PHP,一门最近几年兴起的web设计脚本语言,由于它的强大和可伸缩性,近几年来得到长足的发展,php相比传统的asp网站,在速度上有绝对的优势,想mssql转6万条数据php如需要40秒,asp不下2分钟.但是,由于网站的数据越来越多,我们渴求能更快速的调用数据,不必要每次都从数据库掉,...
- 利用PHPV5开发多任务应用程序2008-05-28 16:15:32
- 许多 PHP 开发人员认为,由于标准的 PHP 缺少线程功能,因此实际 PHP 应用程序不可能执行多任务处理。例如,如果应用程序需要其他 Web 站点的信息,那么在远程检索完成之前它都必须停止。这是错误的!通过本文了解如何使用 stream_select 和 stream_socket_client 实现...
- 详细解析PHP向MySQL发送数据过程2008-05-28 16:07:23
- 下面的一段代码是一个很简单的 HTML 表单:
<html>
<body>
<formaction=submitform.php3method=GET>
姓:<inputtype=textname=first_namesize=25maxlength=25>
名:<inputtype=textname=last_namesize=25ma...
- PHP实现静态发布的方法浅谈2008-05-28 16:03:08
- 如今很多网站都是静态发布的,PHP当然也可以方便的实现静态发布喽,具体的实现方法很多,下面我就说说我会的两种方法。
方法一:ob_get_contents()
这是一种很方便的方法,也是很常用的方法,实现原理是:首先打开缓存,然后创建相应的静态页文件,写入缓存的内容,清...
- PHP技术进阶用PHP处理多个同名复选框2008-05-23 16:39:46
- 如果一个表单中有多个同名复选框,在提交到php时却只有一个值,而并不像asp那样是一串用逗号分割的值。有一个很简单的方法来解决:将复选框的name后面加上[],例如:<input type="checkbox" name="ccc" value="1"> 改为:<input...
- 解决RHAS3中Apache2PHP上传大小限制2008-05-23 16:29:28
- 近日将论坛从VBB2升级到VBB3,将上传附件大小设置为2M,可每次上传超过500K的附件都会出错,而之前使用VBB2时却正常。
仔细检查php.ini,其中的upload_max_filesize=8m,没有任何问题,然后将其中的:
max_execution_t...
- 如何才能将数据从文本导入到mysql数据库2008-05-23 16:22:36
- access中可以将文本中的数据轻松导入表中,mysql中用起来没那么方便,其实起来也很简单。
首先将数据记录按行处理好用特定的字符分开如:“,”
记录形如:
aaa,bbb,ccc,ddd,eee
fff,ggg,hhh,iii,jjj,kkk
就行,建立loaddate.php...
- 用php语言实现数据库连接详细代码介绍2008-05-23 16:14:46
- 通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL的使用方...
- PHP技术进阶:php用流方式制作缩略图2008-05-23 16:09:14
- 其中db_mysql.inc.php,config.php,function.php不是真正使用到的,关键是$filename 文件名,我是通过读取数据库中的图片名称
<?php
include_once ('inc/db_mysql.inc.php');
include_once ('inc/config.php');
includ...
- PHP技术进阶PHPSOCKET技术研究2008-05-23 16:04:11
- 今天试着写一个 PHP 与 C 语言通过socket通讯的程序,看过PHP手册,发现有好几种方式可以建立socket 客户端.
1、通过 fsockopen() 建立socket连接,然后用 用fputs() 发送消息,用 fgets() 接收消息。
2、通过 socket_create() 建立 socket 连接,然后用 socket_send(...
- 在PHP中使用随机数的三个步骤详细代码2008-05-23 15:49:59
- ...
- PHP进阶技巧:如何避免表单的重复提交2008-05-23 15:47:22
- ...
- 利用php和js来轻松实现页面数据的刷新2008-05-23 15:41:36
- 利用"XXXX.htm"和"XXX.php"两个文件来实现数据的刷新
XXXX.htm
<head>
<script>
// Refresh code
r_s = 0;
timenow = 0;
function calrs()
{
d = ne...
- php实现gb2312和unicode间编码转换2008-05-23 15:33:13
- gb2312 和 unicode 间的编码转换
下面的例子是将 gb2312 转换为 "全"这种形式
php4.3.1以后的iconv函数很好用的,只是需要自己写一个uft8到unicode的转换函数
查表(gb2312.txt)也行。
<?
$text = "电子书库"...
- PHP实用:用PHP来实现图片的简单上传2008-05-23 15:25:53
- //文件上传。Linux+apache+php3/4测试通过。iis测试未通过,win+apache+php未测试
<?php
if ($HTTP_POST_VARS["upload"]=="上传"){
file://这里你可以加上检查文件名,格式,图片尺寸等功能,
file://$picurl 本地...
- 新手如何使用PHP来创建RSS的阅读器2008-05-23 15:23:00
- Jacques Noah在Devshed上发表了一篇关于在PHP4与任意版本的Mysql搭建的平台下创建一个基于PHP的RSS阅读器的文章,RSS文档中有三个主要的标签:Title,link和description,分别包含着像它们名称提示一样的信息。
Jacques列举了来自一个RSS文档的两段代码,包含开始部分和结...
- 使用php5时MySQL返回乱码的解决办法2008-05-23 15:21:15
- 在使用 PHP 5 中,通过 MySQL 查询得到的值全部成为 '???????',原来是字符集设错了。
我在安装 MySQL 5 时,已经选择默认字符集为 gb2312,但还是返回乱码,解决的办法是在连接 MySQL 服务器后,调用一个与所设字符集相同的 "set names X&...
