iLeichun

当前位置:首页

getAttribute和getParameter的区别

分类:Jsp  来源:网络  时间:2010-9-5 0:14:59

1.getAttribute是取得jsp中用setAttribute設定的attribute
2.parameter得到的是string;attribute得到的是object
3.request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据;request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。即request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。
——getParameter得到的都是String类型的。或者是http://a.jsp?id=123中的123,或者是某个表单提交过去的数据。
——getAttribute则可以是对象。
——getParameter()是获取POST/GET传递的参数值;
——getAttribute()是获取对象容器中的数据值;
——getParameter:用于客户端重定向时,即点击了链接或提交按扭时传值用,即用于在用表单或url重定向传值时接收数据用。
——getAttribute:用于服务器端重定向时,即在sevlet中使用了forward函数,或struts中使用了mapping.findForward。getAttribute只能收到程序用setAttribute传过来的值。
——getParameter()是获取POST/GET传递的参数值;
——getAttribute()是获取SESSION的值;
另外,可以用setAttribute,getAttribute发送接收对象.而getParameter显然只能传字符串。
setAttribute 是应用服务器把这个对象放在该页面所对应的一块内存中去,当你的页面服务器重定向到另一个页面时,应用服务器会把这块内存拷贝另一个页面所对应的内存中。这样getAttribute就能取得你所设下的值,当然这种方法可以传对象。session也一样,只是对象在内存中的生命周期不一样而已。
getParameter只是应用服务器在分析你送上来的request页面的文本时,取得你设在表单或url重定向时的值。
getParameter   返回的是String,   用于读取提交的表单中的值;      
getAttribute   返回的是Object,需进行转换,可用setAttribute设置成任意对象,使用很灵活,可随时用。
 

jsp连接sqlserver2005

分类:Jsp  来源:网络  时间:2010-9-5 0:14:22

1,解压sqljdbc_1.0.809.102_chs.exe(http://www.microsoft.com/downloads/details.aspx?FamilyID=6d483869-816a-44cb-9787-a866235efc7c&DisplayLang=zh-cn),

   把sqljdbc.jar放在Tomcat 4.1in和   commonlib目录下。(或在classpath加sqljdbc.jar)

sql2005操作

1、“开始”→“程序”→“Microsoft SQL Server 2005”→“配置工具”→“SQL Server 配置管理器”→“SQL Server 2005 网络配置”→“MSSQLSERVER 的协议”
2、如果“TCP/IP”没有启用,右键单击选择“启动”。
3、双击“TCP/IP”进入属性设置,在“IP 地址”里,可以配置“IPAll”中的“TCP 端口”,默认为1433。
4、重新启动SQL Server或者重启计算机

用javabean连接数据库
  a,用eclipse建立class文件conndb2005.java,编辑成class文件(conndb2005.class)     javabean连接代码
  b,写jsp文件调用class文件,实现数据库的所有操作(conn2005.jsp)
  c,通过http://localhost:8090/jsp/learning/con2005.jsp访问
 

用jsp把网页内容保存为excel文件

分类:Jsp  来源:网络  时间:2010-9-5 0:13:41

项目中使用了jasperreport做为报表工具,一直运行平稳,但前段时间客户要求按字段输出成excel报表, 而jasper报表尽管可以输出成excel但不灵活,不能灵活的选取输出字段,为此,想直接把数据库检索的内容,输出到excel文件中。写出了一个jsp文件,结果证明是可行的。

<%@ page contentType="application/msexcel;charset=utf-8" %>
<!--以上这行设定本网页为excel格式的网页 -->
<%
   response.setHeader("Content-disposition","inline; filename=mytest.xls");
 %>
<html>
<head>
<meta http-equiv="Content-Type" content="application/msexcel; charset=utf-8">
<title>Excel测试</title>
</head>
<body>
  <table border="1" width="100%">
    <tr>
      <td>姓名</td>
      <td>身份证字号</td>
      <td>生日안녕</td>
    </tr>
    <tr>
      <td>李鬼</td>
      <td>N111111111</td>
      <td>1900/11/12</td>
    </tr>
    <tr>
      <td>梁XX</td>
      <td>N222222222</td>
      <td>1923/10/1</td>
    </tr>
    <tr>
      <td>张MM</td>
      <td>N333333333</td>
      <td>1934/12/18</td>
    </tr>
  </table>
</body>
</html>

上面代码中编码问题也是一大问题,在上面这个代码之前,我只在文件最开头加了一个utf-8编码,结果不成,中文全是乱码,改成gb2312,中文可以了,但韩文不行。后面加入了:

<meta http-equiv="Content-Type" content="application/msexcel; charset=utf-8">后总算解决问题了。
 

同时运行PHP4与PHP5

分类:PHP  来源:网络  时间:2010-9-5 0:12:15

前段时间决定运用PHP5来开发最新的项目。由于很多程序还是用PHP4开发的,所以就涉及到如何同时调试PHP4和PHP5程序的问题了。经过一番试验,终于找到一种简单的方法,让我可以方便的调试PHP4和PHP5程序。

基本设置
原理说穿了很简单,就是让IIS运行PHP4,然后让Apache2运行PHP5。难点主要就是如何解决PHP4和PHP5使用各自php.ini的问题。

一、首先安装配置IIS+PHP4,方法就不啰嗦了。然后在IIS中,将默认网站的TCP端口设置为8080,以避免和Apache发生冲突;
二、安装Apache(我装的Apache 2.0.52)和PHP5。安装PHP5时,不要把PHP5的php.ini复制到C:Windows中,这样会覆盖掉PHP4的php.ini文件。只要把PHP5的php.ini放在PHP5安装目录里面就行了;
三、配置Apache以支持PHP5:

LoadModule php5_module "d:/usr/local/php-5.0.3-Win32/php5apache2.dll"
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php
PHPIniDir "d:/usr/local/php-5.0.3-Win32"

其中最重要的一条就是 PHPIniDir,用来指明php.ini文件所在位置(也就是PHP5的安装目录)。

按照上面的配置后,PHP4和PHP5就可以同时运行了。使用 http://localhost:8080/ 就是访问IIS+PHP4,而 http://localhost/ 就是访问Apache+PHP5。

进一步优化
现在对刚刚的设置进一步优化,避免访问IIS+PHP4还要指定端口号的麻烦。

一、修改Apache配置文件,启用Proxy模块;

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

二、继续修改Apache配置文件,让Apache处理对IIS+PHP4的访问;

ProxyPass /iis/ http://127.0.0.1:8080/
ProxyPassReverse /iis http://127.0.0.1:8080

这两行配置告诉Apache,当处理以/iis路径的请求时转发到 http://127.0.0.1:8080/。由于Apache的代理功能对于访问者来说是完全透明的,因此我们就可以使用下面的路径分别访问IIS+PHP4和Apache+PHP5:
http://localhost/iis/ 访问IIS+PHP4
http://localhost/ 访问Apache+PHP5

现在感觉就好多了,不用输入端口号就可以很方便的访问PHP4和PHP5程序了。

让不同的虚拟主机分别使用PHP4和PHP5
按照上面的思路,还可以让不同的虚拟主机使用不同版本的PHP。参考下面的配置:

上面的配置中,一个虚拟主机的域名是 blog.dualface.com。这个虚拟主机使用了PHP5,所以直接由Apache处理访问请求。另一个虚拟主机是 dev.dualface.com,由Apache转发到 http://127.0.0.1:8080/ 到处理。

ServerAdmin daut@dualface.com
DocumentRoot E:/www/dualface_dot_com
ServerName blog.dualface.com
ServerAlias dualface.com
DefaultLanguage zh-CN
AddDefaultCharset UTF-8

ServerAdmin daut@dualface.com
ServerName dev.dualface.com
DefaultLanguage zh-CN
AddDefaultCharset GB2312
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/

当然了,我们不一定非要用IIS+PHP4和Apache+PHP5这种组合,改为Apache+PHP4和Apache+PHP5也是可以的,只不过多安装一套Apache而已。而且利用这个技巧,不但可以让虚拟主机使用不同的PHP,还可以让IIS来运行ASP、ASP.NET程序、 Apache来处理静态网页和PHP程序,充分发挥Apache和IIS各自的强项。

另一文章:iis与apache,同时使用80端口的解决办法

http://hi.baidu.com/sdxlh007/blog/item/d900a810bcacc701203f2e44.html

为调试程序,本机安装iis与apache,无法同时使用80端口,现给出解决方法:
方法一:
IIS5,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2 原文地址
c:InetpubAdminscripts
cscript adsutil.vbs set w3svc/disablesocketpooling true
该命令反馈如下disablesocketpooling : (BOOLEAN) True
重启IIS
InetpubAdminScripts>cscript adsutil.vbs set w3svc/disablesocketpooling true
由于 DisableSocketPooling 在 IIS 6.0 元数据库架构 (MBSchema.xml) 中被定义为有效属性,所以,您仍然可以使用 Adsutil.vbs 设置该属性,但这种设置不起作用。IIS 6.0 中的功能是新增的核心级别驱动程序 HTTP.sys 的一部分。要配置 HTTP.sys,您必须使用 Httpcfg.exe

方法二:

IIS6,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2 原文地址
到2003的CD下的 support/tools/Support.cab。解压出httpcfg.exe文件,COPY到windows/system32/目录下,用法自己看帮助

命令行

绑定到某IP: httpcfg set iplisten -i 192.168.0.1
即命令使用IIS的只监听指定的IP及端口
查看绑定: httpcfg query iplisten 
删除绑定: httpcfg delete iplisten -i 192.168.0.1

命令行
net stop Apache2
net stop iisadmin /y
net START Apache2
net START w3svc

保证iis下的ip设置为全局默认,Apache中httpconf设置listen 192.168.0.2:80,就应该可以两个服务同时运行,相互不冲突了。
IIS的访问地址为http://192.168.0.1,Apache访问地址为http://192.168.0.2

方法三:

网上常用的单IP共用80端口方法,不过不推荐,只是使用Apache的代理,速度有影响将apache设为使用80端口,IIS使用其它端口,比如81,然后将apache作为IIS的代理。

在httpd.conf里面,取消下面四行的注释:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

然后建立一个虚拟主机,将该域名的所有访问转向81端口。

ServerName iloves.vicp.net
ProxyPass / http://localhost:81/
ProxyPassReverse / http://localhost:81/

这样,对外就可以只需要一个端口,即可同时使用apache和IIS的功能了

类推,使用第二种方法,你可以在IIS上配置PHP4,Apache2中配置PHP5,只需要IIS中安装PHP4,把php.ini复制到windows目录即可,这个就不用说了吧,Apache2中,只要把PHP5的php.ini放在PHP5安装目录里面就行了

配置Apache以支持PHP5:

LoadModule php5_module "D:/PHPServer/PHP5/php5apache2.dll"
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php
PHPIniDir "D:/PHPServer/PHP5"

其中最重要的一条就是 PHPIniDir,用来指明php.ini文件所在位置,即PHP5的安装目录,注意所有目录的应该改为D:/PHPServer/PHP5这种格式,而非D:PHPServerPHP5,IIS的访问地址为http://192.168.0.1,Apache访问地址为http: //192.168.0.2
 

PHP4和PHP5性能大对比

分类:PHP  来源:网络  时间:2010-9-5 0:09:52

为了让大家更有信心的转移到PHP 5平台上,特别做了这个测试,看看我们PHP 4.x 是否真的性能比我们的PHP 5.x要好捏,测试结果很明显,那就是PHP 5.x 比php 4.x不论是面向对象还是面向过程,都要比PHP 4.x 要快,所以大家完全有必要转移到PHP 5.x 平台上,去体验PHP 5.x 平台的各种功能和性能。 


因为PHP 5 包括新的对象模型,更多新特点,更快的处理速度,特别是处理面向对象代码的速度,虽然在php 4中面向对象代码的速度比较一般,但是在PHP5.x中面向对象代码的速度都超过了面向过程的速度,所以不要对面向对象的性能持有怀疑,下面的测试结果将说明这一切。 


【测试环境】 


* CPU: Intel Pentium4 2.66GHz 

* Memory: 1GB 

* Disk: 73GB/SCSI 

* OS: FreeBSD 4.11 

* Web: Apache 1.3.37 

测试工具:ab (也可以选用http_load) 

名词RPS: Requests per second (每秒的请求数量) 


【PHP 4.4.2 测试结果】 


[ 函数 Function ] 


测试结果:ab -n 10000 -c 50 的结果是1047.23/rps 


[ 类 Class ] 


不实例化类 


测试结果:ab -n 10000 -c 50 的结果是 1034.98/rps 


实例化类 


测试结果:ab -n 10000 -c 50 的结果是 1006.14/rps 


类的继承 


测试结果:ab -n 10000 -c 50 的结果是 992.95/rps 


【PHP 5.2.1测试结果】 


[ 函数 Function ] 


测试结果:ab -n 10000 -c 50 的结果是 1176.06/rps 


[ 类 Class ] 


不实例化类 


测试结果:ab -n 10000 -c 50 的结果是 1197.17/rps 


实例化类 


测试结果:ab -n 10000 -c 50 的结果是 1187.93/rps 


类的继承和抽象 


测试结果:ab -n 10000 -c 50 的结果是 1128.54/rps 


【测试结果和分析】 


[ 测试结果数据 ] 


版本 函数测试 不实例化类 实例化类 类的继ā承 

PHP 4.4.2 1047.23/rps 1034.98/rps 1006.14/rps 992.95/rps 

PHP 5.2.1 1176.06/rps 1197.17/rps 1187.93/rps 1128.54/rps 


[ 结果分析 ] 


1. 总体来说,可以明显刚看到PHP5.2 的性能要比 PHP4.4略高一点,所以不要怀疑PHP5.2的性能会差,明显比 PHP4要快 


2. PHP4.4中的类的解析性能明显要比函数的要慢,特别是当使用了继承以后,更是下降的厉害,所以在PHP4.4中更适宜使用面向过程和没有继承的类操作 


3. PHP5.2中结果是类的执行速度比函数还要快,可以看出PHP5.2的引擎对面向对象处理花费了很大的功夫,同时他们不论是函数还是类,性能都不错 


4. 通过这个测试,我们完全有理由在代码变更不大的情况下,把PHP4升级到PHP5,而且PHP5基本向下兼容PHP4的代码,除了一些特殊的代码。另外上面提到今年年底之后PHP Group将不再继续对PHP4进行维护了,所以早升级,早安心。 
 

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 的购买价格绝对会物有所值。

  • 60
  • |<
  • <<
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • >>
  • >|