﻿<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.2" -->
<rss version="0.92">
<channel>
	<title>网络赚钱指南</title>
	<link>http://blog.nmi.cn</link>
	<description>网赚之家-www.pany.net.cn</description>
	<lastBuildDate>Wed, 01 Feb 2012 08:44:43 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>MySQL 多表查询2</title>
		<description><![CDATA[4、删除记录
用如下命令删除表中的一条记录：mysql&#62; delete from mytable where name=′abc′;
DELETE 从表中删除满足由 where 给出的条件的一条记录。再显示一下结果：
mysql&#62; select * from mytable;
+&#8212;&#8212;&#8212;-+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8211;+
&#124; name &#124; sex &#124; birth &#124; birthaddr &#124; single &#124;
+&#8212;&#8212;&#8212;-+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8211;+
&#124; abccs &#124;f &#124; 1977-07-07 &#124; china &#124; y &#124;
&#124; mary &#124;f &#124; 1978-12-12 &#124; usa &#124; NULL &#124;
&#124; tom &#124;m &#124; 1970-09-02 &#124; usa &#124; NULL &#124;
+&#8212;&#8212;&#8212;-+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8211;+
5、删除表：
mysql&#62; drop table ****(表 1 的名字)，*** [...]]]></description>
		<link>http://blog.nmi.cn/archives/481</link>
			</item>
	<item>
		<title>mb_substr和mb_strcut的区别</title>
		<description><![CDATA[mb_substr() 函数对英文或中文字符都表示一个单位。
mb_strcut() 函数对中文字符是 3 个单位，英文是 1 个单位。例如：
&#60;?php
$str = &#8220;这样abcd一来&#8221;;
echo &#8220;mb_substr:&#8221;.mb_substr($str, 0, 5, &#8216;utf-8&#8242;);
echo &#8220;&#60;br&#62;&#8221;;
echo &#8220;mb_strcut:&#8221;.mb_strcut($str, 0, 8, &#8216;utf-8&#8242;);
?&#62;
输出结果如下：
mb_substr: 这样abc
mb_strcut:  这样ab
]]></description>
		<link>http://blog.nmi.cn/archives/477</link>
			</item>
	<item>
		<title>用五种不同的方式截取文件后缀名</title>
		<description><![CDATA[/**
 * 写出五种方式来获取文件后缀名称,一个非常容易考试的题目
 */
$filename  = &#8216;www.baidu.com/images/logo.png&#8217;;
//第一种使用strrchr函数进行字符串的截取
echo substr(strrchr($filename,&#8217;.'),1); //先截取.后面的部分，然后再使用substr截取从1开始的字符串则可
//第二种方式使用pathinfo函数进行数组排列
$arr =  pathinfo($filename);
echo $arr['extension'];
//第三种方式使用strrpos函数,查找最后一个.的位置然后再使用substr截取该长度
echo substr($filename,(strrpos($filename,&#8217;.')+1));
//巧妙的使用数组的方式进行获取
$ar = explode(&#8216;.&#8217;,$filename);
echo array_pop($ar);
//第五种则可使用正则表达式了
echo (preg_replace(&#8216;/.*\.(.*[^\.].*)*/iU&#8217;,'\\1&#8242;,$filename)); //此函数非常好用，可以参考学习下。
]]></description>
		<link>http://blog.nmi.cn/archives/475</link>
			</item>
	<item>
		<title>解决Can&#8217;t connect to MySQL server on &#8216;localhost&#8217; (10048)</title>
		<description><![CDATA[一般见于使用mysql的windows 2003服务器.
错误的出现的原因:
应用程序需要快速释放和创建新连接, 但是由于 TIME_WAIT 中存在的连接超过默认值，导致较低吞吐量.
解决方案:
和本错误密切相关的两个windows的注册表项:TcpTimedWaitDelay和MaxUserPort的值.
TcpTimedWaitDelay 确定 TCP/IP 可释放已关闭连接并重用其资源前, 必须经过的时间. 关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期（2MSL）状态. 此时间期间, 重新打开到客户机和服务器的连接的成本少于建立新连接. 减少此条目的值允许 TCP/IP 更快地释放已关闭的连接, 为新连接提供更多资源.
MaxUserPort 确定从系统请求任何可用用户端口时所用最大端口数，TCP/IP 可指定的最高端口号. 如果建立 TCP 连接最大端口连接大于 5000, 本地计算机响应以下错误信息WSAENOBUFS (10055): 因为系统缺乏足够缓冲区或者因为队列已满而无法执行套接字上操作, 从而导致应用程序的10048错误.
打开注册表编辑器regedit
TcpTimedWaitDelay 设置:
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键
并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值
设置此值为十进制 30, 十六进制为 0&#215;0000001e
该值等待时间将是 30 秒。
本项的默认值：0xF0(16进制), 等待时间设置为 240 秒
MaxUserPort 设置(增加最大值端口连接):
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键
并创建名为 MaxUserPort 的新 REG_DWORD 值
设置此值为十进制最低 32768
该值等待时间将是 30 秒。
重启windows系统。
本项的默认值：5000(十进制)
关闭注册表编辑器, [...]]]></description>
		<link>http://blog.nmi.cn/archives/472</link>
			</item>
	<item>
		<title>MySQL 多表查询</title>
		<description><![CDATA[在一个数据库中，可能存在多个表，这些表都是相互关联的。我们继续使用前面的例子。前面建立的表中包含了员工的一些基本信息，如姓名、性别、出生日期、出生地。我们再创建一个表，该表用于描述员工所发表的文章，内容包括作者姓名、文章标题、发表日期。
1、查看第一个表 mytable 的内容：
mysql&#62; select * from mytable;
+&#8212;&#8212;&#8212;-+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+
&#124; name &#124; sex &#124; birth &#124; birthaddr &#124;
+&#8212;&#8212;&#8212;-+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+
&#124; abccs &#124;f &#124; 1977-07-07 &#124; china &#124;
&#124; mary &#124;f &#124; 1978-12-12 &#124; usa &#124;
&#124; tom &#124;m &#124; 1970-09-02 &#124; usa &#124;
+&#8212;&#8212;&#8212;-+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+
2、创建第二个表 title （包括作者、文章标题、发表日期）:
mysql&#62; create table title(writer varchar(20) not null,
-&#62; title varchar(40) not null,
-&#62; senddate date);
&#38;nbsp;&#38;nbsp;&#38;nbsp;&#38;nbsp;向该表中填加记录，最后表的内容如下：
&#60;ccid_nobr&#62;
&#60;table width=&#8221;400&#8243; border=&#8221;1&#8243; cellspacing=&#8221;0&#8243; cellpadding=&#8221;2&#8243;
bordercolorlight = [...]]]></description>
		<link>http://blog.nmi.cn/archives/469</link>
			</item>
	<item>
		<title>详细介绍PHP应用提速</title>
		<description><![CDATA[我们都知道，速度快是PHP最大的优点。一般情况下PHP总是具有足够的速度支持Web内容动态生成，许多时候你甚至无法找出比它更快的方法。
　　然而，当你不得不面对庞大的访问量、高负荷的应用、有限的带宽以及 其他各种带来性能瓶颈的因素时，你可能会问问自己是否可以做点什么让网站运行得更好。或许只要加上一个 很不起眼的免费模块，你的PHP应用性能以及Web服务器响应速度就会有显著的改善。
　　本文讨论的就是如何进一 步提高php应用的性能，给用户以更美妙的浏览感受。本文分三个方面(代码优化、缓存、内容压缩)阐述提高 PHP应用性能的各种技术，并介绍各个领域的知名产品。
　　代码优化
　　首先我们来看看代码优化。注意，这里的代码优化可不是指把代码写得更加美观漂亮，因为这恐怕已经是 众所周知没有必要继续讨论了;另外，如果你已经考虑到了速度问题，很可能你早就对PHP的源代码作了一些优化。
　　不过，有些工具却能够自动地帮助我们完成这些繁杂的工作，如Zend Optimizer就是这样一个工具。 Zend Optimizer可以从Zend Technologies免费得到，但你必须同意它的许可约定，注意它不是以 GPL方式发行。Zend Optimizer获取由Zend Engine运行时编译生成的中间代码，并对它进行优化， 从而使得中间代码具有更快的执行效率。
　　Zend Optimizer的安装方法非常简单，你只需下载为自己所用平台提供的预编译版本，把下面两行代 码加入到php.ini，然后重新启动Web服务器即可：
　　zend_optimizer.optimization_level=15
　　zend_extension=&#8221;/path/to/ZendOptimizer.so&#8221;
　　zend_loader.enable=Off
　　这里额外增加的第三行代码是可选的。禁止zend_loader似乎能够让Zend Optimizer的速度更快一点 ，所以在php.ini中加上这行代码是值得的。注意：只有当你不使用Zend Encoder Runtime时，你才 可以禁用zend_loader。
　　缓存
　　如果你想要让自己庞大的PHP应用有更好的性能表现，采用缓存也是一种很好的方法。现在已经有许多缓存 方案可供选择，其中包括：Zend Cache，APC，和Afterburner Cache。
　　所有这些产品都属于“缓存模块”。当第一次出现对.php文件的请求时，它们会在Web服务器内存中保存 PHP的中间代码，此后就用“经过编译”的版本响应后继的请求。这种方法确实能够改善应用的性能，因为它使 得磁盘访问量减低到了最少的程度(代码已经读取和解析)，代码直接在内存中运行使得服务器响应请求的速度大大提高。
　　当然，缓存模块还会监视PHP源文件的变化，必要时重新缓存页面，从而防止了用户得到的页面仍 旧由过时的PHP代码生成。由于缓存模块能够明显地降低服务器的负载、提高PHP应用的响应效率，因此它们非 常适合于负载较大的网站使用。
　　如何选择这些缓存产品
　　Zend Cache是Zend Technologies公司的商业软件，而Zend Technologies就是前面提到的 那个为我们提供PHP引擎和免费Zend Optimizer的公司。Zend Cache确实是名不虚传!对于大型的 PHP页面，你可以感觉到第一次运行之后速度就会有所提高，而且服务器也会有更多的可用资源。遗憾的是这个 产品并不免费，不过在有些情形下它仍旧是物超所值。
　　Afterburner Cache是来自Bware Technologies的免费缓存模块，当前这个产品还是Beta版。 Afterburner Cache的做法看起来与Zend Cache差不多，但它对性能的改善程度(还)不能与 Zend Cache相比，而且它还不能与Zend Optimizer一起工作。
　　APC是Alternative PHP Cache的缩写，它是来自Community Connect的又一个免费缓存模 块。这个产品已经具有足够的稳定性供正式场合使用，而且它看起来也能在很大程度上提高响应请求的速度。
　　内容压缩
　　前面我们讨论了几种提高PHP应用性能的方法，下面来看看使得浏览者感到网站速度太慢的另外一个重要因 素：下载速度。如果PHP应用在内部Intranet上运行，而且每一台客户机都以100 MB/s的速度连接到服务 器，那么下载速度应该不是什么问题。然而，如果服务器还要为慢腾腾的Modem用户提供服务，那么值得考虑内 容压缩。
　　大多数浏览器都根据IETF标准支持用gzip进行内容压缩。这意味着你可以用gzip压缩内容然而发送给 浏览器，由浏览器解压缩数据之后再显示页面，这整个过程对用户来说完全透明。至于服务器端的内容压缩， 现在已经有许多不同的方法可供使用。
　　例如，来自Remote Communications的免费Apache模块mod_gzip就具有为支持这类内容编码的浏览器 [...]]]></description>
		<link>http://blog.nmi.cn/archives/466</link>
			</item>
	<item>
		<title>mysql大数据量处理</title>
		<description><![CDATA[一、概述
分表是个目前算是比较炒的比较流行的概念，特别是在大负载的情况下，分表是一个良好分散数据库压力的好方法。
首先要了解为什么要分表，分表的好处是什么。我们先来大概了解以下一个数据库执行SQL的过程：
接收到SQL &#8211;&#62; 放入SQL执行队列 &#8211;&#62; 使用分析器分解SQL &#8211;&#62; 按照分析结果进行数据的提取或者修改 &#8211;&#62; 返回处理结果
当然，这个流程图不一定正确，这只是我自己主观意识上这么我认为。那么这个处理过程当中，最容易出现问题的是什么？就是说，如果前一个SQL没有执行完毕的话，后面的SQL是不会执行的，因为为了保证数据的完整性，必须对数据表文件进行锁定，包括共享锁和独享锁两种锁定。共享锁是在锁定的期间，其它线程也可以访问这个数据文件，但是不允许修改操作，相应的，独享锁就是整个文件就是归一个线程所有，其它线程无法访问这个数据文件。一般MySQL中最快的存储引擎MyISAM，它是基于表锁定的，就是说如果一锁定的话，那么整个数据文件外部都无法访问，必须等前一个操作完成后，才能接收下一个操作，那么在这个前一个操作没有执行完成，后一个操作等待在队列里无法执行的情况叫做阻塞，一般我们通俗意义上叫做“锁表”。
锁表直接导致的后果是什么？就是大量的SQL无法立即执行，必须等队列前面的SQL全部执行完毕才能继续执行。这个无法执行的SQL就会导致没有结果，或者延迟严重，影响用户体验。
特别是对于一些使用比较频繁的表，比如SNS系统中的用户信息表、论坛系统中的帖子表等等，都是访问量大很大的表，为了保证数据的快速提取返回给用户，必须使用一些处理方式来解决这个问题，这个就是我今天要聊到的分表技术。
分表技术顾名思义，就是把若干个存储相同类型数据的表分成几个表分表存储，在提取数据的时候，不同的用户访问不同的表，互不冲突，减少锁表的几率。比如，目前保存用户分表有两个表，一个是user_1表，还有一个是 user_2 表，两个表保存了不同的用户信息，user_1 保存了前10万的用户信息，user_2保存了后10万名用户的信息，现在如果同时查询用户 heiyeluren1 和 heiyeluren2 这个两个用户，那么就是分表从不同的表提取出来，减少锁表的可能。
我下面要讲述的两种分表方法我自己都没有实验过，不保证准确能用，只是提供一个设计思路。下面关于分表的例子我假设是在一个贴吧系统的基础上来进行处理和构建的。（如果没有用过贴吧的用户赶紧Google一下）
二、基于基础表的分表处理
这个基于基础表的分表处理方式大致的思想就是：一个主要表，保存了所有的基本信息，如果某个项目需要找到它所存储的表，那么必须从这个基础表中查找出对应的表名等项目，好直接访问这个表。如果觉得这个基础表速度不够快，可以完全把整个基础表保存在缓存或者内存中，方便有效的查询。
我们基于贴吧的情况，构建假设如下的3张表：
1. 贴吧版块表: 保存贴吧中版块的信息
2. 贴吧主题表：保存贴吧中版块中的主题信息，用于浏览
3. 贴吧回复表：保存主题的原始内容和回复内容
“贴吧版块表”包含如下字段：
版块ID       board_id          int(10)
版块名称    board_name      char(50)
子表ID       table_id            smallint(5)
产生时间    created             datetime
“贴吧主题表”包含如下字段：
主题ID          topic_id        int(10)
主题名称        topic_name     char(255)
版块ID          board_id          int(10)
创建时间       created           datetime
“贴吧回复表”的字段如下：
回复ID        reply_id           int(10)
回复内容      reply_text        text
主题ID        topic_id           int(10)
版块ID        board_id         int(10)
创建时间      created            datetime
那么上面保存了我们整个贴吧中的表结构信息，三个表对应的关系是：
版块 &#8211;&#62; 多个主题
主题 &#8211;&#62; 多个回复
那么就是说，表文件大小的关系是：
版块表文件 &#60; 主题表文件 &#60; 回复表文件
所以基本可以确定需要对主题表和回复表进行分表，已增加我们数据检索查询更改时候的速度和性能。
看了上面的表结构，会明显发现，在“版块表”中保存了一个&#8221;table_id&#8221;字段，这个字段就是用于保存一个版块对应的主题和回复都是分表保存在什么表里的。
比如我们有一个叫做“PHP”的贴吧，board_id是1，子表ID也是1，那么这条记录就是：
board_id &#124; [...]]]></description>
		<link>http://blog.nmi.cn/archives/463</link>
			</item>
	<item>
		<title>优秀的PHP开发者是怎样炼成的？</title>
		<description><![CDATA[　PHP是一门高效的网络编程语言，由于它具有编写灵活、运行快速等优点，迅速成为Web程序员的首选语言。那么怎样才能成为一个优秀的PHP开发者呢?
　　要成为一名PHP编程高手并不容易，并不像很多人想象的那样，只要能够飞快地编写几条简单的代码去解决一个复杂的问题就是PHP编程高手了，真正的PHP高手还需要考虑更多的其它问题。以下三条准则是一名成熟的PHP程序员在编程中应该首先遵循的准则。
　　◆懒惰是金
　　◆编写漂亮的代码
　　◆追求程序的速度，而不是编程的速度
　　懒惰是金
　　做一个懒惰的程序员吗?这个想法太奇怪了!因为这个世界上最忙碌的人可能就是计算机程序员了。但正是因为程序员太忙了，所以才应该在编程时学会偷懒。对于一个程序员来说，懒惰的方法有两种：
　　其一，大胆使用现成的别人的程序代码，把这些代码融入到你自己的程序或者项目中去。其二是编写一些有用的代码建立一个函数库，在将来编写程序时可以顺手拈来，省去了许多重复的劳动，自然就可以懒惰一点了。这两种偷懒的方法都非常适合PHP程序员了。
　　首先，PHP是在自由开放的环境中诞生和成长的一门语言。在世界各地，有成千上万的程序员，他们一直在为PHP的完美而不断奋斗，他们也愿意和别人分享自己的聪明才智和自己编写的代码。你每天都可以从一些PHP网站、邮件列表、新闻组发现大量的优秀的程序代码。
　　这样说，我并不是鼓励你整天等着让别人为你编写代码，但是你可以“站在伟人的肩膀上”，充分发扬“拿来主义”，聪明地应用别人的程序代码可以节省你大量时间。其次，在PHP中，你可以方便地建立自己的函数库，这样可以在你以后编写程序时省去很多麻烦。
　　下面笔者为大家介绍几个通用的函数，这些函数有的来自网上的一些开放源代码的项目，有的精选自邮件列表。如果你能把它们加入到你自己的函数库中，迟早你将会发现自己受益无穷。
　　1.通用数据库处理函数
　　和其它的CGI函数相比，PHP的优点之一是具有很强大的数据库处理能力。但是，在PHP中，对于不同的数据库都使用一些特定的函数来专门处理，缺少通用的数据库处理函数。这大大降低了程序代码的可移植性，这也为初学编程的朋友带来了很多不便。
　　在网上，许多程序员都通过封装类解决了这个问题。他们编写了统一的函数用来处理任何流行的数据库——不管是在Linux世界深受欢迎的Mysql还是在Windows平台上广泛流行的SqlServer。
　　就笔者个人来说，非常喜欢使用这些函数，因为可以直接使用一些简单的诸如”query”、”next_record”之类的函数，而不需要考虑数据库 的连接、数据库句柄这些复杂的东西，更不需要考虑使用的是何种数据库。如果你需要这些函数，你可以通过访问以下的几个网址而得到：
　　◆http://phplib.netuse.de/
　　◆http://phpclasses.UpperDesign.com/browse.html/package/20
　　◆http://phpdb.linuxbox.com/
　　2.变量调试函数
　　PHP程序的调试一直是一件让人头疼的事，它既不像VB等高级语言那样有集成的编译调试环境，也不想Perl那样可以在Linux或者DOS环境下直 接运行。其实，我们完全可以通过灵活地使用echo语句来完成对PHP的调试工作。下面的几个函数可以让你随时查看程序中任何变量的类型及其值。
　　function ss_array_as_string (&#38;$array, $column = 0) {
　　$str = “Array(n”;
　　while(list($var, $val) = each($array)){
　　for ($i = 0; $i &#60; $column+1; $i++){
　　$str .= “    ”;
　　}
　　$str .= $var. ==&#62; ;
　　$str .= ss_as_string($val, $column+1).” n”;
　　}
　　for ($i = 0; $i &#60; $column; $i++){
　　$str .= “    ”;
　　}
　　return $str.);
　　}
　　function ss_object_as_string (&#38;$object, $column = 0) {
　　if (empty($object-&#62;classname)) {
　　return “$object”;
　　}
　　else {
　　$str = $object-&#62;classname.”( [...]]]></description>
		<link>http://blog.nmi.cn/archives/460</link>
			</item>
	<item>
		<title>Navicat for MySQL 8 注册码</title>
		<description><![CDATA[强大的mysql数据库管理软件Navicat for MySQL 8 注册码
姓名(Name)：3ddown.com
组织(Organization)：3ddown.com
注册码(Serial)：NAVJ-W56S-3YUU-MVHV
]]></description>
		<link>http://blog.nmi.cn/archives/458</link>
			</item>
	<item>
		<title>php开发效率提高的方法</title>
		<description><![CDATA[就其本质而言，如果你掌握了以PHP语言“做事”的方式，那么在使用它时就会得心应手，因此值得你去投入精力去了解这些方式。在PHP中，单纯按照自己思路去解决问题往往会是一种错误的办法。这并不是因为你是一个糟糕的程序员，而是因为如果你想写出好的可维护性强的代码，有些标准技巧是你必须要使用的。下面让我们一起看一下你需要知道的10大技巧。
1、如何正确的创建一个网站的Index页面
　　创建每一个网站时，建立网站的index页面是首要做的事情之一。如果你是一个PHP新手，在编写index页面时典型的做法是只对index页面所需的内容进行编程，其它链接创建另一个页面。不过，如果想学习一种更高效的方式来实现PHP编程，可以采用“index.php?page=home”模式，许多网站都在采用这种模式。
2、使用Request Global Array抓取数据
　　实际上我们没有任何理由使用$_GET和$_POST数组来抓取数值。$_REQUEST这个全局数组能够让你获取一个get或form请求。因此，多数情况下解析数据的更高效代码大体如下：
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 0;  3、利用var_dump进行PHP代码调试
　　如果你在寻找php调试技术，我必须说var_dump应该是你要找的目标。在显示php信息方面这个命令可以满足你的所有需要。而调试代码的多数情况与得到PHP中的数值有关。
4、PHP处理代码逻辑，Smarty处理展现层
　　Smarty是一个使用PHP写出来的模板PHP模板引擎，是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容，提供了一种易于管理和使用的方法，用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲，目的就是要使PHP程序员同前端人员分离，使程序员改变程序的逻辑内容不会影响到前端人员的页面设计，前端人员重新修改页面不会影响到程序的程序逻辑，这在多人合作的项目中显的尤为重要。
5、的确需要使用全局数值时，创建一个Config文件
　　动辄创建全局数值是一种糟糕的做法，不过有时候实际情况的确又需要这么做。对于数据库表或数据库连接信息使用全局数值是一个不错的想法，但不要在你的PHP代码中频繁使用全局数值。另外，更好的一种做法是把你的全局变量存放在一个config.php文件中。
6、如果未定义，禁止访问！
　　如果你正确的创建了页面，那么任何其他人没有理由访问index.php或home.php之外的index.php页面。一旦index.php被访问后，你可以通过获得变量的方式来打开需要的页面。你的index页面应该包含类似的以下代码：
define(‘yourPage’,1); 　　然后，其它页面应该包含：
if (!defined(‘yourPage’)) die(‘Access Denied’); 　　这么做的目的是防止直接访问你的其它php页面。这样，任何试图不通过index.php访问其它网页的人，将得到“访问被拒绝”的消息。
7、创建一个数据库类
　　如果你正在进行数据库编程（在PHP中非常常见的任务），一个不错的想法是创建一个数据库类来处理任何数据库管理功能。示例代码如下：
public function dbExec($query)      {          $result = $this-&#62;db-&#62;exec($query);          if (PEAR::isError($result))              errorRedirect($result-&#62;getMessage(), true);          else             return $result;      }  　　这个函数仅接收一个查询语句并对其执行。它还处理可能出现的任何错误。你还可以在这儿包含审核代码，不过我更喜欢使用一个类似的审核函数：
// checks if arguments given are integer values not less than 0 – has multiple arguments      function sanitizeInput()      {          $numargs = func_num_args();          $arg_list = func_get_args();          for [...]]]></description>
		<link>http://blog.nmi.cn/archives/455</link>
			</item>
</channel>
</rss>

