php
PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。 www.ddhw.com
www.ddhw.com
PHP 独特的语法混合了 C、
Java、Perl 以及 PHP 自创的语法。
它可以比
CGI或者
Perl更快速地执行
动态网页。用PHP做出的
动态页面与其他的
编程语言相比,PHP是将
程序嵌入到
HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后
代码,编译可以达到
加密和
优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的
数据库以及
操作系统。最重要的是PHP可以用C、C++进行程序的扩展!
[1]www.ddhw.com
PHP原始为 Personal Home Page的缩写,现已经正式更名为 "PHP: Hypertext Preprocessor"的缩写。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。PHP于19 94年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf 为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。最初这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。后来又用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。 www.ddhw.com
在1995年早期以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档。并且发布了PHP1.0!在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性。比如循环语句和数组变量等等;在新的成员加入开发行列之后,Rasmus Lerdorf 在1995年6月8日将 PHP/FI 公开发布,希望可以透过社群来加速程序开发与寻找错误。这个发布的版本命名为 PHP 2,已经有今日 PHP 的一些雏型,像是类似 Perl 的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。程序语法上也类似 Perl,有较多的限制,不过更简单、更有弹性。PHP/FI加入了对MySQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI。 www.ddhw.com
在1997年,任职于 Technion IIT 公司的两个以色列程序设计师:Zeev Suraski 和 Andi Gutmans,重写了 PHP 的剖析器,成为 PHP 3 的基础。而 PHP 也在这个时候改称为PHP:Hypertext Preprocessor.[5]。经过几个月测试,开发团队在1997年11月发布了 PHP/FI 2。随后就开始 PHP 3 的开放测试,最后在1998年6月正式发布 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 发布后开始改写 PHP 的核心,这个在1999年发布的剖析器称为 Zend Engine[7],他们也在以色列的 Ramat Gan 成立了 Zend Technologies 来管理 PHP 的开发。 在2000年5月22日,以Zend Engine 1.0为基础的PHP 4正式发布,2004年7月13日则发布了PHP 5,PHP 5则使用了第二代的Zend Engine[5]。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个存取数据库的延伸函数库)、以及许多效能上的增强。目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。 2008年PHP 5成为了PHP唯一的有在开发的PHP版本。将来的PHP 5.3将会加入Late static binding和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes 和 Safe mode的功能。 www.ddhw.com
PHP最新稳定版本:5.3.19(2012.10.8)[2] PHP最新发布版本:5.4.9(2012.10.8)[2]www.ddhw.com
Zend Studio 是专业开发人员在使用PHP整个开发周期中唯一的集成开发环境 (IDE)[3]。 www.ddhw.com
PHP的特性包括 : 1、开放的源代码:
所有的PHP源代码事实上都可以得到。 2、PHP是免费的:
和其它技术相比,PHP本身免费且是开源代码。 3、php的快捷性:
程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。 4、跨平台性强:
由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS下。 5、效率高:
PHP消耗相当少的系统资源。 6、图像处理:
用PHP动态创建图像 7、面向对象:
在php4,php5 中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。 8、专业专注:
PHP支持脚本语言为主,同为类C语言。 www.ddhw.com
1,伪静态 2,静态页面生成 3,数据库缓存 4,过程缓存 www.ddhw.com
5,div+cssw3c标准 6,大负荷 7,分布式 8,flex 9,桌面程序应用(不擅长) 10,支持MVC模型 11,Smarty模版引擎 www.ddhw.com
编辑本段PHP 3与PHP 4
PHP3
PHP3跟Apache服务器紧密结合的特性; 加上它不断的更新及加入新的功能,而且几乎支持所有主流与非主流数据库。再以它能高速的执行效率,使得PHP在1999年中的使用站点已经超过了150000。加上它的源代码完全公开,在 Open Source意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新的活力。使得PHP无论在UNIX、LINUX或是Windows的平台上都可以有更多新的功能。它提供丰富的函数,使得在程序设计方面有着更好的支持。 PHP4
PHP4.0整个脚本程序的核心大幅更动,让程序的执行速度,满足更快的要求。在最佳化之后的效率,已较传统CGI或者ASP等程序有更好的表现。而且还有更强的新功能、更丰富的函数库。无论您接不接受,PHP 都将在 Web CGI 的领域上,掀起巅覆性的革命。对于一位专业的Web Master 而言,它将也是必修课程之一。 www.ddhw.com
PHP 4.0是更有效的,更可靠的动态Web页开发工具,在大多数情况运行比 PHP 3.0要快,其脚本描述更强大并且更复杂,最显著的特征是速率比的增加。PHP4.0这些优异的性能是PHP 脚本引擎重新设计产生的结果:引擎由 AndiGutmans 和 Zeev Suraski从底层全面重写。PHP4.0 脚本引擎 ——Zend引擎,使用了一种更有效的编译——执行方式,而不是PHP 3.0 采用的执行 ——当解析时模型。 PHP4的优越性
PHP4在3.0版的基础上增加或增强了许多有用的特征,主要如下: ⑴别名:在PHP4中,可以利用引用为变量赋值,这给编程带来了很大的灵活性。 ⑵扩充了API模块:PHP 4.0 为扩展的 API 模块的提供了扩展PHP接口模块,它比旧的 API 版本显著地快。PHP 模块已有的及最常用的接口多数被转换到使用这个扩展的接口。 www.ddhw.com
⑶自动资源释放:PHP4增加了引用计数功能,这种新技术的引入使PHP4具有了自动内存管理功能,减轻了开发人员的负担。 ⑷布尔类型:PHP 4.0 支持布尔类型。 ⑸进程生成:在 UNIX 环境下的 PHP 4.0 提供了一个很智能和通用的生成进程,使用了一种名为基于automake/libtool的系统生成技术。 ⑹COM/DCOM 支持:PHP 4.0 提供 COM/DCOM 支持 ( 仅用于Windows 环境 ) 可以无缝地存取和访问 COM 对象。 ⑺与PHP 3.0 兼容性很好:PHP 4.0 是与 PHP 3.0 代码向后兼容性接近100%。由于 PHP 4 的改进的体系结构,两者有一些细微的差别,但是大多数人将可能永远不可能遇上这种情况。 www.ddhw.com
⑻配置:PHP4重新设计和增强了PHP.ini文件,这使得用PHP.ini来配置PHP显得极为容易,这个文件可以在运行时被Apache(unix系统)或由Windows 注册(Windows 环境)。 ⑼加密支持:PHP4实现了完整的加密,这些加密功能是一个完整的mycrypt库,并且 PHP 4.0 支持哈希函数。Blowfish,TripleDES,MD5,并且SHA1 也是可使用的一些加密算法。 ⑽类型检查:PHP 4.0 支持同一操作符用于评类型检查:===(3 等号运算符),为在两个值和其类型之间作检查。例如,'3' ===3 将视为假 ( 类型是不同的 ),而 3 ==3 ( 相等判断 ) 将视为真。 www.ddhw.com
⑾FTP 支持:PHP 4.0 支持 FTP。通常,你会为通过一个调制解调器连接下载一个大文件提供一个接口。然而,如果你确实有需要,可以使用PHP。 ⑿PHP4新增函数或功能增强函数:PHP 4.0 新增了许多函数,同时也将许多现有的函数功能进行了增强,以下是一些例子。array_count_values eval foreach include ob_end_clean ob_end_flush ob_get_contents ob_start strip_tags unset()。 www.ddhw.com
⒀here打印:PHP 4.0 的Here打印是与Perl类似的,尽管完全不相同。Here是打印大容量文章的一个有用的方法,例如在 HTML文件中,不会漏掉任何一个字符,例如目录标记。 ⒁HTTP Session fallback 系统:为 HTTP Session管理的一个 fallback 系统在 PHP 4.0被实现。缺省情况下,Session标识符由cookies存储。如果没有cookies支持或一项cookies任务失败,Session标识符自动被创建并在 URL 的查询字符串中被携带。 ⒂ISAPI 支持:PHP 4.0 能作为一个个性化的 ISAPI 模块作为 IIS插件。这比 PHP 3.0 更有效,它作为一个外部的程序来运行。 www.ddhw.com
⒃内存:PHP 4.0 能更有效的使用内存,导致较少的内存占用消耗,这主要归功于引用计数技术的实现。⒄其他类成员函数:在 PHP 4.0 你能在成员函数本身的作用域或全局范围内调用其他类的成员函数。例如,你能用一个子函数覆盖父函数,并在子函数中调用父函数。 ⒅多维数组:在 PHP 4.0 ,利用GET,POST,Cookies的进行的数据传输支持多维数组。 www.ddhw.com
⒆个性化的 HTTP Session支持:HTTP Session处理,包括 fallback 系统管理,在 PHP 4.0被它的新库函数实现。在版本 3.0 中处理Session要求使用 PHPLIB 和第三方的库函数,它比把Session直接地由 PHP 支持慢了许多。 ⒇个性化的 Java 支持:PHP 4.0 支持和java的交互。这种个性化的Java 支持为PHP 在 Java 对象上创建和使用方法提供一个简单并且有效的工具。 (21)对象和数嵌套组:PHP 4.0 实现了功能更加强大的对象,移去了 PHP 3.0存在的种种句法限制。对象能在数组以内被嵌套并且反过来也如此,可以根据你的需要实现嵌套。 www.ddhw.com
(22)面向对象的编程:PHP 4.0 为面向对象的编程和构造类及对象提供扩展的功能和新特征。PHP4实现了对象重载,引用技术等新技术。 (23)对象重载支持:对象重载语法允许第三方的基于面向对象的类库使用 PHP4 的面向对象的特征存取他们自身的功能。使用这个特征的一个 COM 模块已经被实现了。 www.ddhw.com
(24)输出缓冲支持:PHP 提供了一个输出缓冲函数集合。输出缓冲支持允许你写包裹函数功能压缩缓冲区。在 PHP4 的输出缓冲支持允许 HTML 头信息存放,无论 HTML的正文是否输出。头信息( (header,content type,and cookies ) 不采用缓冲。 (25)增加了PCRE 库:PHP 4.0 包括一个 Perl 兼容的正则表达式(PCRE ) 库,和正常regex库一起与 PHP 绑定。split 和replace PCRE 功能被支持。PCRE 和 Perl 正规表达式之间有一些细微差别。 www.ddhw.com
(26)PHP.ini 文件:PHP.ini文件在 PHP4.0 被重新设计,使用的 PHP 的配置PHP.ini是更容易并且更有效的。全部文件能被Apache 在运行时间操作 ( 在 Apache环境 下 ) 或由 Windows 注册表 ( 在 Windows 下面 )。被加入PHP.ini文件的配置指令自动地在所有相关的模块中被支持。 (27)引用计数:PHP 4.0 为系统中的每个数值提供了引用计数,包括资源。一旦一个资源不再被任何变量引用,它自动地被释放以节省内存资源。利用这个特征的最明显的例子一个内置SQL查询的循环语句。在PHP 3.0中 ,每次递归另外的 SQL 结果集合重复申请内存,直到脚本执行完毕,这些结果集合占用的内存才被释放。 (28)支持引用:通过引用可以改变一个变量的值。 (29)函数的运行时绑定:PHP 4.0 的运行时间绑定功能允许你在他们被声明以前调用,无论声明是否在代码以后或是在运行时间。 (30)类的运行时信息:PHP 4.0 支持在运行时刻存取下列类信息:一个对象的类名,一个对象的父类的类名字,以及对象函数所在的名字。 www.ddhw.com
(31)服务器抽象层:为支持Web服务器提供了增强型 SAPI ( 服务器 API ) 接口,是 PHP 4.0 不可分的一部分。这个服务器抽象层,提供了通用的WEB服务器接口支持,支持多线程WEB服务器,为大多数的WEB服务器提供透明的支持,这些服务器包括 Apache,IIS ( ISAPI ),以及 AOL 服务器。 (32)语法的点亮显示:PHP 4.0 语法的点亮显示允许开发者看见源代码而不是脚本,这个功能比PHP 3.0中的更有效。它跑得更快,更执行得更好,并且产生更紧凑的HTML代码。 www.ddhw.com
(33)由引用改变变量的值:PHP 4.0 由引用支持可变的赋值,“关联”的2个变量之中个的任何一个的值被改变,另外的变量的值同样被改变,这类似与C中的指针类型。 (34)在引用字符串中的变量引用:PHP 4.0 增强了在引用字符串中的变量引用。 www.ddhw.com
PHP5在长时间的开发及多个预发布版本后,2004年7月13日,PHP5.0发布。该版本以Zend引擎Ⅱ为引擎,并且加入了新功能如PHP Data Objects(PDO)。现在PHP5.0版本强化更多的功能。首先,完全实现面向对象,提供名为PHP兼容模式的功能。其次是XML功能,PHP5.0版本支持可直观地访问XML数据、名为SimpleXML的XML处理用界面。同时还强化了XMLWeb服务支持,而且标准支持SOAP扩展模块。数据库方面,PHP新版本提供旨在访问MySQL的新界面——MySQL。除此前的界面外,还可以使用面向对象界面和预处理语句(Prepared Statement)等MySQL的新功能.另外,PHP5.0上还捆绑有小容量RDBMS-SQLite. 1、新的对象模式
PHP5 中的对象已经进行了较系统、较全面的调整,现在的样子可能看起来会有些类似于 Java。本小节着重讲述 PHP5 中新的对象模式,并举了一些较简易的例子来说明。就让本节成为你的 PHP5 之旅的一个新起点吧。:) www.ddhw.com
* 构造函数和析构函数 * 对象的引用 * 对象的克隆 * 对象中的私有、公共及受保护模式 * 接口 (Interfaces) * 抽象类 * __call * __set 和 __get * 静态成员 构造函数和析构函数 在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。 www.ddhw.com
在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct。 对象的引用 在PHP4中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号“&;” 来声明是要做一个引用,而不是一个 Copy。在 PHP5中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。 对象的克隆 当一个对象始终以引用的形式来被调用时,如果我想得到该对象的一个副本,该怎么办呢?PHP5 提供了一个新的功能,就是对象的克隆,语法为 __clone。 抽象类www.ddhw.com
抽象类不能被实例化。 抽象类与其它类一样,允许定义变量及方法。 抽象类同样可以定义一个抽象的方法,抽象类的方法不会被执行,不过将有可能会在其派生类中执行。 __call PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。 __set 和 __get 这是一个很棒的方法,__set 和 __get 方法可以用来捕获一个对象中不存在的变量和方法。 类型指示www.ddhw.com
在 PHP5 中,你可以在对象的方法中指明其参数必须为另一个对象的实例。 静态成员 静态成员和静态方法在面象对象编程的术语中被称作 “类方法(class methods)” 和 “类变量(class variables)”。 www.ddhw.com
“类方法” 在一个对象没有实例化前允许被调用。同样,“类变量” 在一个对象没有实例化前可以被独立操作控制(不需要用一个对象的方法来控制)。 2、异常处理
异常处理是公认的处理程序错误的理想方法,在 Java 及 C 中都有这个概念,我们欣喜的看到,在 PHP5 已经加入了这方面的应用。你可以尝试使用 “try” 和 “catch” 来控制程序的错误。当有错误发生的时候,代码会把错误交给 “catch” 子句来处理,在 “catch” 子句中,你需要指明要把错误交给某个对象处理,这样做可以使代码结构看起来更清晰,因为现在我们可以把所有的错误信息交给一个对象来处理。 自定义错误处理www.ddhw.com
你可以很方便的用自定义的处理错误的代码来控制你的程序中的意外。你仅仅需要从异常类中派生出一个自己的错误控制类,在你自己的错误控制类中,你需要有一个构造函数和一个 getMessage 方法。 3、命名空间
名称空间对类的分组或函数分组很有用。它可以把一些相关的类或函数给组合到一起,方便以后调用。 例:名称空间 namespace Math
{
class Complex
{
//...code...
function __construct
{
print("hey");
}
}
www.ddhw.com
}
$m = new Math::Complex;
?>
注意你需要在何种情况下使用名称空间,在实际运用中,你可能会需要声明两个或多个名称一样的对象来做不同的事情,那么你就可以把他们分别放到不同的名称空间中去(但接口是要相同的)。
www.ddhw.com
1. 支持Unicode
支持
Unicode是有其必然,虽然Unicode占用较多的空间,但Unicode带来的便利性,远超过占用空间的缺点,尤其在国际化的今天,硬件设备越来越强大,网速也大幅度的提升,这么一点小小的缺点是可以忽略的。另外一点,PHP也可以在.ini文件中设定是否开启支持Unicode。
2. 移除RegisterGlobal
这是一个重要的决定,许多新进的PHP开发者会觉得RegisterGlobals蛮方便的,但是却忽略了RegisterGlobals会带来程序上安全性的隐患,大多数的主机上此项功能是关闭的,印象PHP4.3.x版开始时,此项默认设置值即是关闭状态,PHP6正式移除RegisterGlobals也代表着如果程序是由PHP3时代的产物,将完全无法使用,除了改写一途外,别无他法。相信现在的PHP世界里,仍使用PHP3时代所产生的程序应该是少之又少。
3.Magic Quotes 将消失
Magic Quotes主要是自动转义需要转义的字符,此项功能移除也符合大多数PHP开发者的心声。
4.Safe Mode 取消www.ddhw.com
老实说,这个模式不知道哪里不好,取消就取消吧,反正也用不到。
5.'var' 别名为 'public'
在类中的var声明变成public的别名,相信是为了兼容PHP5而作的决定,PHP6现在也可以称作为OO语言了。
6.通过引用返回将出错
现在透过引用返回
编译器将会报错 例如$a =& new b()、function &c(),OO语言默认就是引用,所以不需要再使用&;了。
7.zend.ze1 compatbility mode 将被移去
Zend.ze1相容模式将被移去,PHP5是为兼容旧有PHP4,所以在.ini中可选择是否开启相容模式,原因在于PHP5使用的是第二代解析引擎,但是相容模式并不是百分之百能解析PHP4语法,所以旧时代的产物,移除。
8.Freetype 1 and GD 1 support 将不见
这两个是很久的Libs,所以不再支持,GD1早已被现在的GD2取代了。
9.dl 被移到 SAPI 中
dl()主要是让
设计师加载extension Libs,现在被移到 SAPI 中。
10.Register Long Array 去除
从PHP5起默认是关闭,再PHP6中正式移除。
11.一些Extension的变更
例如 XMLReader 和 XMLWriter将不再是以Extension的方式出现,他们将被移入到PHP的核心之中,并且默认是开启,eregextension将被放入PECL,代表着它将被移出PHP核心,这也为了让路给新的正则表达式extension,此外,Fileinfoextension 也将被导入PHP的核心之中。
12.APC将被导入核心
这是一个提高PHP性能的功能,现在它将被放入PHP核心中,并且可以选择是否启用
APC13.告别ASP风格的起始标签
原来是为了取悦ASP开发者转向使用PHP,现今已经不再需要这种做法了
www.ddhw.com
由于php是一个
zip文件(非install版),安装较为简单
解压就行.把解压的 php-5.2.1-Win32
重命名为 php5.并复制到C盘目录下.即安装路径为 c:\php
www.ddhw.com
1 找到php目录下的 php.ini.recommended (或者php.ini-dist)文件,重命名为 php.ini
并复制到系统盘的windows目录下(以c:\windows为例).
2 再把php目录下的php5ts.dll,libmysql.dll复制到目录 c:\windows\system32下.
3 把php\ext目录下的php_gd2.dll,php_mysql.dll,php_mbstring.dll文件复制到c:\windows\system32下
注意:不要把 php_mysql.dll 和 php_mssql.dll 混淆
如果没有加载 php_gd2.dll php将不能处理图像.没有加载php_mysql.dll php将不支持mysql函数库
www.ddhw.com
php_mbstring.dll在后面使用phpmyadmin时支持宽字符
配置php并关联MySQL
1 设置扩展路径
查找 extension_dir 有这么一行
extension_dir = "./"
将此行改成
extension_dir = "C:\php\ext"
其中C:\php是你安装php的路径.路径不正确将无法加载dll
(注意:有些php版本是 ;extension_dir = "./" 要把前面的分号去掉)
www.ddhw.com
2 分别查找
;extension=php_mbstring.dll
;extension=php_gd2.dll
;extension=php_mysql.dll
把上面3项前面的分号去掉,这样apache启动时就可以加载这些dll了
注意不要把 ;extension=php_mysql.dl 和 ;extension=php_mssql.dl 混淆
当然前面我们也把这些dll复制到system32下了.(大家在安装的过程中都注意到如何把一些dll加载入来了.
以后要加载一些dll,比如说php_mysqli.dll,也就懂得怎么加载了)
www.ddhw.com
3 设置会话保存路径
查找session.save_path 有这么一行
; session.save_path = "N;/path"
在此行后加入一行(注意是加入一行,不是加到后面)
session.save_path = "C:\WINDOWS\Temp"
保存到你的临时目录下,这里完全可以保存到windows临时目录Temp下
4 是否显示错误 display_errors
出于安全性考虑,display_errors 有些版本也默认为 Off.
www.ddhw.com
就是说在调试时,如果php代码有误,就只出现一个空白页.而不会显示出错原因和出错行数.
这样调试起来将非常不便,建议根据自己需要修改
查找
display_errors = Off (注意不是 ; - display_errors = Off [Security])
改成
display_errors = On
5 php5时差问题
;时间相差八小时
www.ddhw.com
为什么呢?PHP5系列版本新增了时区设置,默认为格林威治时间,与
中国所在的东8区正好相差8个小时
查找date.timezone有这么一行
;date.timezone =
将;去掉,改成
date.timezone = PRC
www.ddhw.com
其中PRC:People's Republic of China
中华人民共和国,
PHP的文件上传问题
文件上传成败关键的几点php.ini配置
文件上传的程序没有错,但php的配置很可能导致文件不能上传成功.
1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
www.ddhw.com
0表示没有限制
另一种方法是可以在php程序中加入
set_time_limit;
来设定页面最久执行时间.
set_time_limit(0);//0表示没有限制
2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为
post_max_size = 150M
www.ddhw.com
3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.
为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。
查找upload_max_filesize,默认为8M改为
upload_max_filesize = 100M
另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.
四. active perl 需要安装到c:/perl
五. ZendOptimizer 安装时把 apache 服务器关掉,在过程中要指定 apache 和 php 的安装路径一、
www.ddhw.com
Windows下
软件需求www.ddhw.com
Windows 2000 Professional ; Apache 1.3.19 (apache_1.3.19-win32-src-r2.msi) ; PHP 4.0.5 (php-4.0.5-Win32.zip) ; MySQL 3.23.38 (mysql-3.23.38-win.zip)
安装过程
1. 将 Apache 1.3.19 安装到 C:\Web\apache\ 目录下。
2. 将 PHP 4.0.5 解压到 C:\Web\php\ 目录下。
3. 将 MySQL 3.23.38 安装到 C:\Web\mysql\ 目录下。
www.ddhw.com
4. 将 C:\web\php\php4ts.dll 文件拷贝到 C:\WINNT\system32\ 目录下。
5. 将 C:\web\php\php.exel 文件拷贝到 C:\WINNT\ 目录下。
6. 将 C:\web\php\php.ini-dist 文件拷贝到 C:\WINNT\ 目录下,并将php.ini-dist 更名为 php.ini。
7. 运行 C:\Web\apache\Apache\
Apache.exe-i –n
www.ddhw.com
8. 运行 C:\Web\mysql\bin\
mysqld-nt.exe--install
9. 编辑 C:\WINNT\php.ini
找到 “extension_dir = ./ ” 字段,将其改为 extension_dir = "C:\myphp\php\extensions"。
10. 运行 C:\Web\apache\Apache\Apache.exe -i –n
11. 编辑 C:\Web\apache\Apache\conf\httpd.conf
找到“ #BindAddress*” 字段
www.ddhw.com
将其改为 BindAddress
127.0.0.1。(如果主机有
固定IP地址,此处改为主机IP地址。如 BindAddress 211.101.152.106),找到 “ServerName” 字段,将其改为 ServerName localhost。(如主机有固定主机名,此处改为主机的主机名。如ServerName bn001)。
找到“ ScriptAlias /cgi-bin/ "C:/Web/apache/Apache/cgi-bin/" ” 字段,在其下面加入 ScriptAlias /php/ "C:/Web/php/"。找到 “# And for PHP 4.x,use: ” 字段,在其后面加入:
AddType application/x-httpd-php .php3
www.ddhw.com
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
Action Application/x-httpd-php "c:/Web/php/php.exe"
www.ddhw.com
找到“ #LoadModule usertrack_module modules/mod_usertrack so” 字段,LoadModule php4_module c:/web/php/sapi/php4apache.dll
UNIX下
所需软件 php-3.0.14-win32.zip;php-3.0.14-win32.zip;mysql-shareware-3.22.32-win.zip
所有软件均安装在/export/home/guoj/下,也可在其他目录。
安装mysql
gzip -dc mysql-3.22.30.tar.gz | tar xvf-
cd mysql-3.22.30
./configure -prefix= /export/home/guoj/mysql
make
make install
www.ddhw.com
scripts/mysql_install_db
cd../mysql/bin
bin/safe_mysqld & 安装php apache
gzip -dc apache_1.3.11.tar.gz | tar xvf-
gzip -dc php-3.0.11.tar.gz | tar xvf-
cd apache_1.3.11
./configure -prefix= /export/home/guoj/www
cd ../php-3.0.11
www.ddhw.com
./configure -with-apache= /export/home/guoj/apache_1.3.11
-with-mysql= /export/home/guoj/mysql -enable-track-vars
make
make install
cd ../apache_1.3.11
./configure --prefix= /export/home/guoj/www
--activate-module=src/modules/php3/libphp3.aP
make
make install
www.ddhw.com
cd ../php-3.0.11
cd ../php3.ini-dist php3.ini
vi php3.ini修改php3.ini
doc_root=/export/home/guoj/www/htdocs/
extension_dir=/export/home/guoj/php-3.0.11/
extension=php3_mysql.dllcp php3.ini/usr/local/lib/php3.inivi ../www/conf/httpd.conf
加上以下几句:
AddType application/x-httpd-php3 .php3
www.ddhw.com
Options FollowSymLinks
AllowOverride None
../www/bin/apachectl start
www.ddhw.com
数据库
PHP 在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:
· Adabas D
· DBA
· dBase
· dbm
· filePro
· Informix
www.ddhw.com
· InterBase
· mSQL
· Microsoft SQL Server
· MySQL
· Solid
· Sybase
· ODBC
· Oracle 8
· Oracle
· PostgreSQL
www.ddhw.com
而在 Internet 上它也支持了相当多的通讯协议 (protocol),包括了与
电子邮件相关的 IMAP,POP3;网管系统 SNMP;
网络新闻NNTP;帐号共用 NIS;全球信息网 HTTP 及 Apache 服务器;目录协议 LDAP 以及其它网络的
相关函数。
www.ddhw.com
除此之外,用 PHP 写出来的 Web 后端 CGI 程序,可以很轻易的移植到不同的操作系统上。例如,先以 Linux 架的网站,在系统负荷过高时,可以快速地将整个系统移到 SUN 工作站上,不用重新编译 CGI 程序。面对快速发展的 Internet,这是长期规划的最好选择。
相关语法及概念
[4]php 支持八种原始类型。 四种标量类型: boolean(布尔型) integer(整型) float(浮点型,也作“double”) string(字符串) 两种复合类型:array(数组)object(对象)最后是两种特殊类型:resource(资源)NULL 为了确保代码的易读性,本手册还介绍了一些伪类型:mixednumbercallback www.ddhw.com
语法: 语法有三种: //comment /* comment */ # comment 基本的 "Control Structures": * if ... else if (condition == true) ; * if ... else then if (condition == true) else if (condition2 == true) ; www.ddhw.com
一个PHP实例: