iLeichun

当前位置:首页PHP

PHP4引用文件语句的对比

分类:PHP  来源:网络  时间:2010-9-5 0:05:11

PHP4引用文件语句的对比
凌心一剑
  在我们编程时,有一些东东往往需要重复使用,如果每使用一次就输入一次,实在是太没有效率可言了。因此在编程语言中就出现了专门处理这些操作的语句,我们称他们为『引用文件语句』!在需要的时候只要使用这些引用语句直接将需要的东东引入进来就可以了,效率一下子就提高上去不少,呵呵~~~
  在PHP4中我们可以使用require();include();require_once();include_once;这四个引用语句直接引用已经存在的文件到程序中。合理的使用他们可以提供不少的效率,当然这是在了解了他们直接的异同之处后才能了解的。本文就是重点介绍他们的使用方法!

require()语句
语法:require("statement");

参数:“statement”是要引用的程序段文件名。

说明:require()语句在PHP程序执行前就会将使用require引用的文件读入,因此require通常放到程序的开始处。因此要特别注意一点,require语句有一点强,我的意思是说,不管程序是否真的需要引用的文件,只要你使用require语句,它都会把他们包含进来!即使你是在条件控制语句中使用这个函数进行包含,那怕是那个条件不为真,引用文件也会被包含进来!形成了僵尸,在运行过程中这些僵尸是不起任何可见作用的,但是很明显它会加重负担,所以这一点要特别注意!如果使用require语句发生了包含错误,那么程序将输出出错信息并停止运行!!


include()语句
语法:include("statement");

参数:“statement”是要引用的程序段文件名。

说明:大家可以看到,require()和include()的语法是一样。但是他们的功能却些许出入。include语句只有在被执行时才会读入要包含的文件。在错误处理方便,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行!!(这和有些教科书上说的不一样,不过请你还是相信我,要不自己去尝试一下!相信你自己的判断!!)


require_once()语句
语法:require_once("statement");

说明:它可以说是require的扩展吧,功能和用法相似,但是不同之处是require_once语句有一个引用链,它可以保证文件加入你的程序仅仅只有一次,而且会避开变量值和函数名之间的冲突。^_^


include_once()语句
语法:include_once("statement");

说明:和require_once语句一样,include_once语句把include的功能扩展了。在程序执行期间,将指定的文件包含进来,如果从文件引用进来的程序先前已经包含过的时候,include_once()就不会把它再包含进来。也就是仅仅可以引用同一个文件一次!!!
另外需要大家知道的一些东西,被引用的文件中,将不再继承原来的PHP定界符“<?php”;“?>”,如果在引用的文档中包含PHP代码,需要重新使用定界符“<?php”;“ ?>”标志PHP代码。在PHP4中引用语句具有了函数的某些特征,支持返回值及程序的转向,这些是PHP3中所没有的!强调一下:引用文件,不是系统单独的去执行这个页面,而是把这个页面的代码引入到所属的主程序中。
 

PHP常量能不用就不用

分类:PHP  来源:网络  时间:2010-9-3 11:24:01
PHP常量有自身的特点,在实际中能少用就少用。
1、PHP常量是定义后就不能修改和再次赋值。但是如果再次赋值会怎么样?
<?php
define(¹a¹, 12345);
define(¹a¹, 12349999999);
?>
这段代码只会报个notice错误。
带来的后果是:在你定义之前,其它人要是定义了同名的常量,你可能真的不知道里面究竟是什么值。
补救方法:
使用定义常量之前要使用definde()来确认一下常量是否已经定义过。
实际上,这是PHP处理错误过于宽泛,如果程序报Fatal并停止程序执行就可以避免这个问题。
 
2、如果判断PHP常量是否被定义?
<?php
define(¹a¹, 12345);
 
// 错误方法1,经常犯
if (isset(a)){……}
 
// 错误方法2,经常犯
if (defined(a)){……}
 
// 正确方法,不知道几个人能写对
if (defined(¹a¹)){……}
 
?>
 
3、使用不方便,容易混淆,效率低
<?php
// 再未定义前,直接作为字母使用
echo "这是常量a".a;// 显示:这是常量aa
 
define(¹a¹, 12345);
// 不能放在""内来使用,只能放在""外
echo "这是常量a".a;// 显示:这是常量a12345
 
?>
因为php处理常量的时候要进行多次查找,所以效率低。
 
4、一个经典的错误,数组中key为常量的问题
<?php
$t = array(¹a¹=>¹a¹,¹b¹=>¹b¹,¹c¹=>¹c¹);
 
// 得到key为a的值
echo $t[¹a¹];
 
// 错误!虽然,也可以得到key为a的值,是因为php找不到常量a所以将a做为字符串返回,导致大家将错就错的使用。
echo $t[a]; 
 
define(¹a¹, ¹c¹);
// 正确,注意:得到key为c的值
echo $t[a];
 
?>
 
PHP常量的问题,在于PHP处理常量的方法过于宽松导致的,如果能够严格一些,就会避免很多的问题。在实际过程,能用变量就不要用常量,因为变量的效率高使用更加方便。
 

 

PHP引号的正确使用方式介绍

分类:PHP  来源:网络  时间:2010-9-3 10:52:10

对于没有多少编码经验的新手来说,PHP引号的正确使用是一个比较头疼的事情,经常会因为PHP引号的错误使用导致程序的出错。下面我们就向大家具体介绍一下有关PHP引号的正确使用方法。

 

  • PHP代码优化的一些技巧总结
  • PHP字符串连接的实际代码编写方式
  • PHP验证码在验证页面中的应用分析
  • 解读PHP计算页面执行时间的具体代码实现
  • PHP运算符的类别概览

一.首先想想PHP里所有的单词(其实应该叫符号)有几类.

 

1.PHP,mysql两方的关键词与函数.例如echo,print,mysql_connect等等.这些肯定不加引号的.

2.常量.新手可能用得不多,常量的好处是全局性,穿透函数.速度也快些不过新手可以暂时不管常量这玩意儿.

3.变量.前面带"$"号的就是变量.可以为变量设一个"值",例如一串字符,一个数字,逻辑(真/假)值等.也可以表示一组值(数组,对象等)

4.值.通常要给常量与变量设置值.赋值语句$a=¹abc¹中,右边的¹abc¹即为值.

5.函数的参数(在括号里的).可以是常量,变量,值三种.

变量(常量)与值的关系正如下列各种情况.

"颜色"与"红",

"长度"与100,

"日期"与2007年10月25号"

二.什么情况下用PHP引号

其实只有第4项"值"需要用到引号,函数的里也只有值要用引号.并且只有字符串(日期值可以当成字符串)内容需要用到引号.数字(可用可不用),真假(不能用)例外.

例子

三.单引号与双引号的区别

一般情况下两者是通用的.但双引号内部变量会解析,单引号则不解析.

例子

所以如果内部只有纯字符串的时候,用单引号(速度快),内部有别的东西(如变量)的时候,用双号引更好点.

四.字符串内部如果出现PHP引号怎么办--关于转义.

比如我们想输出: 我"是¹天才

这时候就必须用到转义了.转义即把本来有作用的符号转成无意义的字符.

这样就正常了,因为号把它后面的任何字符都转成无意义的符号.在这里来说,PHP解析器根本没把号后面的引号当成引号来看待.

同样的,还可以转义分号,$符号等特殊符号.

五.字符串的连接.

这是个麻烦的问题.一般来说,变量值,直接包含在双引号中就可以了.另外字符串的叠加用"."字符.

在复杂的情况里可以用大括号来包含,PHP便知道这是一个完整的东西,里面的引号不会影响到外面的引号关系.

与html的混合也很简单,最好养成HTML中全部用双引号,PHP中尽量用单引号的习惯.这样方便把大段的HTML代码复制过来,只要头尾加上单引号就是一个正确的字符串了.几百行的HTML代码也不用担心PHP引号错乱.

总结一下PHP引号使用原则

1.字符串的值用引号

2.PHP中尽量用单引号,HTML代码全部用双引号

3.在包含变量的时候,用双引号可以简化操作

4.复杂的情况下用大括号包起来

PHP引号还有一个用处就是,有的时候需要用php生成文本文件,换行符需要用双引号才能好使,单引号则会直接把当成字符输出。

常用PHP编辑器介绍

分类:PHP  来源:网络  时间:2010-8-30 15:08:56
这里介绍了一些 PHP IDE 工具,非常见的 Editplus 之类的,都是专门为 PHP 开发的,有兴趣都可以试
试看,找出自己用得顺手的就可以了,我推荐3个Zend Studio,DzSoft PHP Editor,Editplus,也是我现在用
的,希望对大家有帮助。

Zend Studio
  开发商:
http://www.zend.com/store/products/zend-studio.php
  目前公认的最强大的PHP开发工具,这种集成软件包包括了用于编辑,调试,配置PHP程序所需要的客户及
服务器组件,软件包具有工业标准的PHP开发环境,代码完成引擎,功能齐全的调试器等
  注册Name: ttdown.com
    注册S/N: 9E023F9D000060000069696969


NuSphere PHPEd
  
http://www.nusphere.com/
  PhpED 通过无与伦比的PHP调试和压缩能力,以及一个新的NuSOAP web服务向导成为了PHP领域的领军
产品。更加强大的Project Manager使得发布站点和应用程序比以前更加容易。现在可以在线程级别对正在运行
或者开发中的程序进行测试和调校。支持 CVS 版本控制,而且,对PostgreSQL和MySQL数据库的本地支持为
PHP使用开源数据库提供了一个广泛的环境。但对中文支持不太好,汉字都当作单字节处理了。PHPED还有Linu
x版本。

PHP Coder
  
http://www.phpide.de/
  PHPCoder用于快速开发和调试PHP应用程序,它很容易扩展和定制,完全能够符合开发者的个性要求.1:结合
了PHP编译器和参考文档,可以对编辑中的PHP脚本进行即时预览2:支持高亮显示HTML和PHP代码;3:自动完成
功能,可以自动完成用户自定义代码片断;4:标准函数提示;5:有专门的工程项目管理器;6:对象浏览器搜寻编辑中文
件的包含信息,自定义函数,并以树形显示.7:支持查找对称的语句标记符;8:支持高级搜索和替换;9:自带FTP功
能;10:支持运行和断点调试11:……总之,PHPCoder是一个非常实用的,功能强大的编程环境,而且它是免费的!

Ankord PHP Expert Editor
  
http://www.ankord.com/phpxedit.html
  PHP Expert Editor是一个容易使用的 PHP 开发工具,它的功能照顾到初级者及专业开发人员。 PHP Ex
pert Editor 内建 http server 用作测试及除错(你也可以使用其他 http server), PHP 语法检查, FTP 功能,
程式码样板等功能。

DzSoft PHP Editor
  
http://www.dzsoft.com/dzphp.htm
  专为 PHP 所设计的网页程序编辑软件 - DzSoft PHP Editor,具有 PHP 编辑、侦错、浏览、原始码检
视、档案浏览、可自订的原始码样本..等功能,无须架设网站主机就可以测试 PHP 指令码,是一套功能强大的 P
HP 编程软件。
  DzSoft PHP Editor和Ankord PHP Expert Editor非常相识,几乎找不到他们的主要区别,关于这两个软
件之间的具体内幕我也不太清楚!

Dev-PHP IDE
  
http://devphp.sourceforge.net/
  非常好用的php编辑器,支持php-gtk,?冉ㄔS多快速html表单,非常的好用,本身含繁体语言包,另附暗
地论坛的中文语言包

Master PHP
  
http://www.gsoftwares.com/
  一款支持PHP, PHP3, PHTML, CSS, JS, HTML, HTM and SQL的编辑器,它允许用户编辑多种一次编辑
多种文件,允许插入,运行和最优化程序的脚本,用户可以通过工具栏定制按钮和窗体,可以导出html和rtf格
式,支持18种语言

Komodo
  
http://www.activestate.com/Products/Komodo/
  Komodo支持在Windows与Linux上,Perl、Python及JavaScript等的程序语言开发,以及多种程序语言
语法不同颜色标注。这款功能强大的IDE竟然不支持中文,连中文文件名的文件都打不开!

Maguma Studio
  
http://www.maguma.com/
  Maguma Studio包含了编辑和调试 PHP 程序所有必须的工具。无论您是经验丰富的开发者、或是初学者
它都适合您。带有十分完整的断点、分步等调试功能。支持以树形方式显示文件中的函数和类成员。

PhpLens
  
http://phplens.com
  PhpLens是一款专为PHP开发人员准备的快速数据库开发程序。通过使用PhpLens,可以快速的设计、发
布和维护数据库驱动的网络产品。它允许你以HTML表格的形式对数据库进行浏览、编辑、创建、删除和查找。不
用写任何代码,它就允许你完成上述操作。

 

7种流行PHP编辑器的比较

分类:PHP  来源:网络  时间:2010-8-30 15:05:06

7种流行PHP编辑器的比较(PHP IDE)  7种流行PHP IDE的比较
  Editplus也可成为强大的PHP编辑器,但是本人主要针对常用PHP编辑器介绍(PHP IDE工具) 。
  本文发掘集成开发环境(IDE)的所有用途,并比较7种流行的集成开发环境(IDE)的成本和优势。
  编写关于 PHP 的系列文章让我更加深刻地了解了 PHP 开发人员的世界。我和许多 PHP 程序员交谈过,最令我惊奇的是只有很少的人使用 IDE。大多数程序员使用文本编辑器,比如 Microsoft Windows 上的记事本、Emacs 或者 Vim。
  我提到的这些文本编辑器(以及我没提到)都是很不错的 —— 我不想讨论哪个编辑器更好。但是,我要强调的是不使用文本编辑器会使您对 PHP 代码有更深的见解。几乎所有人都将 PHP 项目视为只不过是文件目录而已(这种看法十分片面)。现在就让我带您进入PHP IDE 的世界,向您展示PHP IDE 能够 —— 或者应该 —— 给您带来什么,并向您介绍七个最流行的PHP IDE。
  什么是 IDE?
  简而言之,IDE 为编码工作提供了一站式服务。IDE 包括一个编辑器,在此编辑器内可以编辑代码、调试代码、在浏览器(通常是嵌入式的)中查看代码和签入和签出源码控制。为了支持这些功能,IDE 拥有一套在基本编辑器(比如记事本或者 Vim)中所找不到的特性。当然,您可以通过扩展编辑器来实现这些功能,但是 IDE在一个精简软件包中囊括了所有这些功能 —— 并都已预配置:  
  项目
  IDE 的一个关键特性是它把一个 PHP 应用程序看作是一个项目,而不仅仅是一组文件。这个概念 —— 项目 —— 维护额外的信息,比如源码控制的配置、用于调试的数据库设置,以及某一关键目录所在位置。
  调试
  另一个方便的特性是集成调试。使用这个功能,可以在编辑器中设置断点,当 PHP 解释程序执行到这个脚本时就会停止。从断点开始,就可以检查局部变量的值,在代码中诊断问题。在代码中可以使用 echo 语句来检查值或者也可以使用错误日志获得变量的值。
  代码智能
  PHP 是一种非常规则的编程语言,这意味着它遵循着简单的模式。这些模式不仅使代码易于编写,也使 IDE 在项目中检查代码变得很容易。此外,它们可以通过显示检查结果帮助您编写程序。例如,如果在项目中定义了一个名为 MyClass 的类,在键入关键词 new 时,IDE 会立即提供一个包括 MyClass 作为选项的弹出窗口。当使用那种类型的对象时,IDE 就会显示它的可用方法和实例变量。当开始键入一个函数命令时,IDE 就会显示它的可用参数。公正地说,这是应该使用 IDE 而不是文本编辑器的首要原因。这种代码智能可以有效减少敲错类名、方法名和参数。
  类视图
  IDE 中的代码智能引擎产生的另一个作用是 IDE 可以产生项目的 类视图。系统不是显示文件,而是显示已经定义的不同的类,而不管它们所在的文件。当单击类时,编辑器访问相应文件并显示相应类、方法或者实例变量。这在大项目中是一种非常好的导航方法。
  多语言支持
  这里提到的每种 IDE 不仅支持 PHP 而且支持相关语言集:JavaScript、Structured Query Language(SQL)、Hypertext Markup Language(HTML)和 Cascading Style Sheets(CSS)。因为 HTML 和 CSS 比较简单,所以 IDE 对它们的支持是最好的。对于 JavaScript 的支持经常会突出语法,但是支持比不支持要好。
  源码控制
  这里评价的所有 IDE 都支持一些与源码控制系统的连接,允许随着时间维护项目中的文件版本。可以标记文件的特别版本为发布版本,这样在需要撤销改动的时候就可以恢复。在团队环境中使用源码控制系统是很关键的,即使对于个人使用也很重要。当磁盘瘫痪或者客户突然想要以前的版本而不是现在的版本的时候,一个好的源码控制系统就可以发挥作用了。大多数的 IDE 都支持 Concurrent Version System (CVS) 和 Subversion,它们都是开源控制系统。其中一种 IDE 支持 Perforce —— 一款商业源码控制系统。
  FTP/SFTP 集成
  与源码控制相关的一种功能是在服务器中对于最新的代码使用 FTP 。这比使用 FTP 客户机或者自己打包文件并发送给服务器然后再解包要容易许多。
  数据库导航
  一个非基本但十分有用的特性是数据库导航。使用这个特性,可以浏览应用程序访问的数据库、找到表格和字段名并返回查询结果。一些系统甚至可以自动写入一些数据库访问代码。
  集成 Web 浏览器
  一些 IDE 支持集成 Web 浏览器,可以直接导航到正在使用指定的附加参数编辑的页面,这个浏览器可以宿主在 IDE 内,也可以外部调用。诚实地讲,我并不大喜欢集成浏览器,因为我不介意在编辑代码和查看结果这两个独立的应用程序之间切换。但是我知道它确实有一定的作用,但您不必一定要使用它。
  片段
  在所有这些 IDE 中我发现的最后一个特性是对于整段和定制代码片段的支持。片段 是完成小任务(比如在一些输入中运行常规表达式、连接到数据库和查询数据库)的小部分代码。
  以上总结了目前从购买的或者开源的 IDE 中可以预期的核心特性。接下来,将会介绍一些流行的 IDE,展示一些 IDE 图片,并将解释它们所支持的功能及其成本。
  Eclipse
  在 Eclipse 开发平台中有两个插件支持 PHP。第一个 PHP IDE 项目是 Eclipse Foundation 项目,这意味着它在 Eclipse 许可范围内发布,并使用 Eclipse Foundation 工具和方法开发。
  另一个是 PHPEclipse,它是独立开发的。因为使用 Eclipse,所以这两个插件都可以在三大操作系统中运行:Windows、Linux 和 Mac OS X。您可以只下载这两个插件(如果已经使用 Eclipse),或者下载包含所需要的全部内容的 pre-fab 版本。
  这两个插件都支持核心 IDE 特性。特别是代码智能特性,它十分强大,可以在需要的时候弹出并显示所有需要的类、方法和参数信息。
  图 1 显示了 Mac OS X 上运行的 PHPEclipse。左边是在项目中文件的项目视图。下面是类视图,显示所有已经定义的类。中间是代码。可以同时在多个选项卡中打开多个文件。右边是调试和浏览的面板。这是常用的 PHPEclipse 用户界面。
  

  图 1. OS X 上的 PHPEclipse

  图 2 显示了来自 Eclipse Foundation 的 PHP IDE 项目插件。
  图 2. OS X 上的 PHP IDE 项目
  

  如果您不能看出区别,没有关系。这两个插件看起来确实非常类似,因为它们都依靠 Eclipse 平台呈现代码浏览和智能特性。Eclipse 插件 GUI 能够保持连贯性是件很好的事情。
  我没有发现哪一个插件可以把您锁定在某一个 Eclipse 项目中。您可以经常地将一个插件换成另一个插件。在我有限的测试中,我更喜欢 PHP IDE 项目插件,因为我感觉它集成得更好,而且代码智能特性的性能似乎更快捷。试试这两个插件,看看您更喜欢哪一个。
  这两个插件的缺点是 UI 不是为 PHP 量身订做的,原因是 Eclipse 可以用于几乎所有的编程语言。结果是,Eclipse 的术语最初有些另类。如果您刚开始学习 Eclipse,那么这些插件的学习比其他 IDE 更难一些。但是,如果已经了解 Eclipse,那么您就能比较快地熟悉 PHPEclipse 或者 PHP IDE 项目。
  Eclipse 和这些插件的最大优点是什么?它们是免费的,而且稳定、可靠。哦,我提到它们是免费的吗?
  Komodo
  下一个要介绍的是 ActiveState 的 Komodo IDE。这个 IDE 在 Windows、Mac OS X 和 Linux 上运行,并支持通用的开源语言 —— Perl、PHP 和 Ruby。代码智能引擎非常可靠。它扫描所有语言安装找到定制扩展,比如 PEAR 模块。在项目方面,它支持与 CVS、Subversion 和 Perforce 的集成,也允许直接向服务器 FTP 传递代码。
  图 3 显示了在 Windows 上运行的 Komodo。左边是类视图,右边是项目视图。中间的主要部分是代码视图。下面是调试用的断点、命令输出等等。对于所有这些系统,都可以根据需要定制 UI 。
  

  图 3. 在 Windows 上运行的 Komodo
  Komodo 是一个商业产品。在我写作本文的时候,这款 IDE 有个人版(US$29.95)和专业版(US$299.95)两个版本可选。它的一个独特的特性是常规表达式调试器。不管您是常规表达式的新手还是已经开始涉足高级常规表达式特性,这点购买的投入都是很值得的。
  它的缺点是没有数据库集成(至少我没有找到),而且我还遇到了代码智能不总是在想要的时候弹出的小问题。但是,总的来说,Komodo 还堪称是一款健壮的、特色丰富的、可靠的 PHP IDE。
  PHP 设计器
  PHP 设计器与其他 IDE 不太相同。当然,它支持有限的代码智能。但是,它更集中于 PHP Web 应用程序的设计方面。这一点在其集成的浏览器上可见一斑,该浏览器特别地采用了像素标尺用于帮助在页面上定位元素。
  图 4 显示了运行的 PHP 设计器。
  

  图 4. 在 Windows 上的 PHP 设计器
  PHP 设计器中的 PHP 的代码智能和调试特性不是很显著,而对 HTML、CSS 和 JavaScript 的代码智能支持上要相对更强一些。PHP 设计器介于程序员使用的 IDE (主要侧重于代码)和 Adobe Dreamweaver (更侧重于设计)之间。如果您正在寻找这类中间产品,那么 PHP 设计器很值得考虑,因为 IDE 对于个人使用是免费的,而其专业版也只需 US$55。

  PhpED
  NuSphere 的只用于 Windows 的 PhpED 在所有这里介绍的 IDE 中特性是最丰富的。它有一个很好的内部调试器,并为了更容易地访问页面调试而把调试工具条放到了 Microsoft Internet Explorer之内。
  图 5 显示了在 Windows 中使用 PHPEd 开发 PHP 应用程序。在最左边是项目的文件视图。右边紧挨着的是类视图,最右边是代码视图。下面是输出状态。您可能已经注意到,所有这些 IDE 都遵循着相同的基本设计风格。
  

  图 5. 在 Windows 中的 PhpED
  PhpED 的突出特性包括一个很棒的调试器、优秀的数据库访问、较好的代码智能特性以及集成的 PHP 帮助。PhpED 的价格范围从基础版本的 US$119 到专业版本的 US$495。另外还有试用版本可用。
  PHPEdit
  来自 WaterProof Software 的 PHPEdit 感觉像是应用于 PHP 的 Microsoft msdev 环境 —— 这是个不错的事情。PHPEdit 是仅用于 Windows 的 IDE,很容易设置。它甚至还有 PHP 的版本。在 PHP、CSS 和 HTML 的代码智能方面它做得很好,但是却不提供对 JavaScript 的代码智能的支持。图 6 显示了运行的 PHPEdit。
  

  图 6. 在 Windows 中的 PHPEdit
  为了便于部署,PHPEdit 可以连接到 CVS 和 Subversion,以及 FTP 和它自己专有的 ezDeployment 系统。除了代码智能特性,为了加速开发,这款 IDE 有一个极好的代码示例整体模板库,您还可以向库里面添加内容。PHPEdit 的评估版本可以免费使用,要得到正式版本,需要 US$89。
  Zend Studio
  最后,我们谈谈 Zend Studio,它被最后列出只是因为它以 Z 开头。它可能应该是您第一个想到的。为什么?因为它来自 Zend —— PHP 幕后的精英团队。 而且它真的是很不错。它运行于三大系统:Windows、Mac OS X 和 Linux。而且绝对能够提供您所需要的一切:PHP V4、PHP V5 等等。它的下载需要花很长时间,但是非常值得。
  作为 IDE,Zend Studio 是最好的。它提供所有想在内置库和定制代码中拥有的代码智能特性。它还有非常好的调试功能,而且极易设置。要把代码放到存储库(repository) 中,Zend Studio 会连接到 CVS 和 Subversion。要把代码放到服务器上,有集成 FTP 可以使用。Zend Studio 非常适合 Macintosh,如图 7 所示。
  

  图 7. 在 Mac 上的 Zend Studio
  在其他一些 IDE 中,代码片段是内置的以使代码编制更为容易。这款 IDE 也直接集成了数据库以给出可用的表格和字段。
  Zend Studio 的标准版需要 US$99,专业版需要 US$299。我在这里提到的某些特性在标准版本中没有包含。Zend Studio 试用版本可以免费使用。
  结束语
  有许多极好的 IDE 可供选择 —— 其中一些甚至是免费的 —— 您尽可以选择一个试用一下,如果您是专业人员,就更应如此。您可能需要支付公司或者个人的顾问费用,也可能要花钱购买必需的商品。如果考虑使用 echo 调试代码对比使用集成的调试器所花费的时间,IDE 的购买价格绝对会物有所值。

提高PHP编程效率的53个要点

分类:PHP  来源:网络  时间:2010-8-16 19:22:54

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。

1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。

2、$row[’id’] 的速度是$row[id]的7倍。

3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。

4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。

5、注销那些不用的变量尤其是大数组,以便释放内存。

6、尽量避免使用__get,__set,__autoload。

7、require_once()代价昂贵。

8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。

9、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。

10、函数代替正则表达式完成相同功能。

11、str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。

12、如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。

13、使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。

14、用@屏蔽错误消息的做法非常低效,极其低效。

15、打开apache的mod_deflate模块,可以提高网页的浏览速度。

16、数据库连接当使用完毕时应关掉,不要用长连接。

17、错误消息代价昂贵。

18、在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。

19、递增一个全局变量要比递增一个局部变量慢2倍。

20、递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢3倍。

21、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。

22、仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。

 

 

23、方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化。

24、派生类中的方法运行起来要快于在基类中定义的同样的方法。

25、调用带有一个参数的空函数,其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。

26、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。

27、除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能,以免除编译开销。

28、尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码 (OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。

29、当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset() 技巧加速执行你的代码。
(举例如下)

if (strlen($foo) < 5) { echo “Foo is too short”$$ }


(与下面的技巧做比较)

if (!isset($foo{5})) { echo “Foo is too short”$$ }


调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。也就是说,实际上在检验字符串长度的顶层代码中你没有花太多开销。

34、当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或Java代码并指望它们能立即变快,没用的。++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。后置递增实际上会产生一个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种,正如Zend的PHP优化器所作的那样。牢记这个优化处理不失为一个好主意,因为并不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商(ISPs)和服务器。

35、并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。

36、并非要用类实现所有的数据结构,数组也很有用。

37、不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?

 

 

38、当你需要时,你总能把代码分解成方法。

39、尽量采用大量的PHP内置函数。

40、如果在代码中存在大量耗时的函数,你可以考虑用C扩展的方式实现它们。
41、评估检验(profile)你的代码。检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。
42、mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%。

43、在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题;

44、尽量的少进行文件操作,虽然PHP的文件操作效率也不低的;

45、优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作(在update上,我被恶批过);

46、尽可能的使用PHP内部函数(但是我却为了找个PHP里面不存在的函数,浪费了本可以写出一个自定义函数的时间,经验问题啊!);

47、循环内部不要声明变量,尤其是大变量:对象(这好像不只是PHP里面要注意的问题吧?);

48、多维数组尽量不要循环嵌套赋值;

49、在可以用PHP内部字符串操作函数的情况下,不要用正则表达式;

50、foreach效率更高,尽量用foreach代替while和for循环;

51、用单引号替代双引号引用字符串;

52、“用i+=1代替i=i+1。符合c/c++的习惯,效率还高”;

53、对global变量,应该用完就unset()掉;

原文地址:http://www.52blogger.com/archives/578

10款基于PHP免费的CMS

分类:PHP  来源:网络  时间:2010-8-16 13:58:06

在国内,大部分来说,CMS基本就等同于垃圾站。其实选择哪个程序并不重要,重要的是选择一个自己容易上手的,然后着重去回收垃圾。

1. Joomla!

Joomla!的前身是Mambo的开源码计划,

2. Drupal

直逼Joomla!的开源CMS,不过貌似用户群还是没有Joomla!多。

3. Mambo

企业类CMS网站可以选择,个人还是用Joomla好了。

4. DEDECMS

这算国内最知名、使用人数最多的CMS了吧。无数垃圾站就是由它制造出来的,当然,它也制造出了很多优秀的站长。

5. phpcms

没太用过,按BBon的说法,据传被酷6收购。如果真是这样,那完全可以不要选择了。

6. 帝国CMS

个人没用过这个。不过在国内也算比较知名的了,同样是垃圾站的一个不错选择。

7. php168

这个也没用过。

8. HBcms

这个更没用过。

9. SupeSite

从理论上来说,这是一个最佳的选择,比DEDECMS还值得选,毕竟康盛拥有一系列站长需要的源程序,以后的新增、整合、转换起来都比较方便。

10. wordPress

谈到CMS,wordpress是唯一一款身为博客软件却总能列入CMS建站行列的程序。没办法,它的使用者太多了,它也确实够强大。

PHP中的3种注释

分类:PHP  来源:网络  时间:2010-8-15 23:58:28
PHP的注释方式很容易,分下面几种:
1、单行C++语法://
2、单行shell语法:#
3、多行C语法:/*注释内容*/

PHP标记的四种写法

分类:PHP  来源:网络  时间:2010-8-15 23:55:17

1、PHP的界定语法由<?php ?>界定,以<?php开头,?>结束。比如:
<?php
echo "这是一行输出到浏览器的内容"

?>

2、php还支持短标记写法:

<?

echo "这是一行输出到浏览器的内容"

?>

等同于

<?="这是一行输出到浏览器的内容"?>
不过短标记写法需要在php.ini配置文件中开启short_open_tag指令。

3、PHP还支持这样一种写法(称为脚本界定形式):
<script language="php">
print "这是一行输出到浏览器的内容";
</script>


4、PHP还支持ASP风格写法,以便从ASP转行来的程序员适应、习惯:
<%

echo "这是一行输出到浏览器的内容";

%>
这种方式同样需要在php.ini中开启支持。(把asp_tags = Off改为asp_tags = On)

IIS配置php环境

分类:PHP  来源:网络  时间:2010-8-14 17:56:02

虽然 LAMP 组合很不错,但是如果想要架设一台同时支持PHPASPASP.NETJSPPerlWeb虚拟主机服务器,还是用 Windows 2003IIS 6最好。网上有很多介绍在IIS 6上配置PHP的文章,但是那些方法不是性能不好,就是升级麻烦。下面的方法可以让你在第一次配置好后,能够非常方便的进行升级。

 

  这里所说的升级,是指从某个php4版本升级到另一个php4版本,或者从某个php5版本升级到另一个php5版本,而不是指从php4级到php5

 

准备:

 

  1、一台安装好的 Windows 2003 服务器,并且已经安装了 IIS 6

 

  2、下载 windows 版的 PHP 二进制压缩包

 

  安装:

 

  解压缩 PHP 二进制压缩包到 C:php 目录下(这里假设 C: 盘是系统盘,即安装了Windows 系统的盘,如果系统盘是 D: 盘,则解压缩到 D:php 目录下,以此类推,下同)。

 

  然后打开我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”->“path”,编辑其值,在前面增加下面的路径地址:

 

  C:php;C:phpdlls;C:phpextensions;C:phpsapi;

 

  php.ini-dist php.ini-recommended 复制到 C:Windows 目录下,并改名为 php.ini,一般正式发布网站的服务器用 php.ini-dist,而作为调试用的服务器用 php.ini-recommended 更好。当然一般情况下,这个 php.ini 还是需要根据实际情况来修改的。

 

  下面来介绍一下几个必要的修改选项:

 

  extension_dir = "C:phpextensions"

 

  这个是 PHP 扩展所放置的目录,请确保跟你实际安装的目录相同。

 

  extension=php_mbstring.dll

 

  ;extension=php_big_int.dll

 

  extension=php_bz2.dll

 

  extension=php_cpdf.dll

 

  extension=php_crack.dll

 

  extension=php_curl.dll

 

  extension=php_db.dll

 

  extension=php_dba.dll

 

  extension=php_dbase.dll

 

  extension=php_dbx.dll

 

  extension=php_domxml.dll

 

  ;extension=php_exif.dll

 

  ;extension=php_fdf.dll

 

  ;extension=php_filepro.dll

 

  extension=php_gd2.dll

 

  extension=php_gettext.dll

 

  extension=php_hyperwave.dll

 

  extension=php_iconv.dll

 

  ;extension=php_ifx.dll

 

  ;extension=php_iisfunc.dll

 

  extension=php_imap.dll

 

  ;extension=php_interbase.dll

 

  extension=php_java.dll

 

  extension=php_ldap.dll

 

  ;extension=php_mcrypt.dll

 

  extension=php_mhash.dll

 

  extension=php_mime_magic.dll

 

  extension=php_ming.dll

 

  extension=php_mssql.dll

 

  extension=php_msql.dll

 

  ;extension=php_oci8.dll

 

  extension=php_openssl.dll

 

  ;extension=php_oracle.dll

 

  extension=php_pdf.dll

 

  extension=php_pgsql.dll

 

  ;extension=php_printer.dll

 

  extension=php_shmop.dll

 

  ;extension=php_snmp.dll

 

  extension=php_sockets.dll

 

  ;extension=php_sybase_ct.dll

 

  extension=php_w32api.dll

 

  extension=php_xmlrpc.dll

 

  extension=php_xslt.dll

 

  extension=php_yaz.dll

 

  extension=php_zip.dll

 

  上面这些,开头没有加分号的是打开的扩展,加了分号的是没有打开的扩展。上面的设置包含了在 Windows 2003 上默认安装情况下可以打开所有扩展(这里列出的是 php 4 的)。

 

session.save_path = c:sessions

 

  这个是 session 文件默认保存的目录,这个目录必须是一个存在的目录,不然默认的 session 功能会无效。我这里设置的是一个 ramdisk 上的一个目录。将 session.save_path 设置在 ramdisk 上可以加快 session 处理的速度。如果你没有安装 ramdisk,你可以把它指定到其他盘的任何一个目录下,如 C:sessions 目录、C:WindowsTemp 目录等。

 

  OK,基本工作作完了,现在该配置 IIS 了。

 

  打开“ Internet 信息服务(IIS) 管理器,在“ Web 服务扩展里,选择添加一个新的 Web 服务扩展,扩展名可填写“PHP ISAPI 扩展,要求的文件选择:C:phpsapiphp4isapi.dll(如果安装的是 PHP5,则此处是 C:phpsapiphp5isapi.dll,下同),并设置扩展状态为允许。

 

  打开网站”->“属性”->“ISAPI 筛选器”->“添加,筛选器名称可填写“PHP”,可执行文件仍然选择 C:phpsapiphp4isapi.dll

 

  打开网站”->“属性”->“主目录”->“应用程序设置”->“配置”->“应用程序扩展”->“添加,可执行文件还是选择 C:phpsapiphp4isapi.dll。扩展名填写“.php”,动作限制为“HEAD,GET,POST”

 

  打开网站”->“属性”->“文档”->“启用默认内容文档”->“添加,可以将 index.php 添加为默认内容文档。

 

  然后选择服务器机器名”->“所有任务”->“重新启动 IIS”来重启 IIS

 

  测试

 

  在默认网站发布目录下,建立一个测试页面:

 

  下载:phptest.php

 

  phpinfo();

 

  ?>

 

  如果打开这个页面能够看到 php 安装配置信息,就算是安装成功了。

 

  如果想要更优化的执行 php 程序,可以安装 ZendOptimizer-2.6.0-Windows-i386.exe ,这个东西安装非常简单,这里就不介绍了。

 

  升级

 

  现在升级就非常简单了。只需要将新版本的 PHP 二进制压缩包下载下来,将原来的 C:php 目录删除,将新版本解压缩到 C:php 目录中,然后重新启动一下 IIS 就可以了。不需要修改任何配置,也不需要往 System32 目录中复制任何文件。是不是很方便啊