PHP
PHP概述
PHP(PHP: Hypertext Preprocessor的递归缩写,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但除传统的服务端脚本外,PHP也被用于其他很多领域,如用来编写命令行脚本和桌面应用程序(利用PHP-GTK扩展),也可编写后台SHELL脚本程序,甚至编写WEB服务器。
PHP最初是由勒多夫在1995年开始开发的;现在PHP的标准由the PHP Group维护。PHP以PHP License作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不兼容。
PHP的应用范围相当广泛,尤其是在网页程序的开发上。一般来说PHP大多运行在网页服务器上,透过运行PHP代码来产生用户浏览的网页。PHP可以在多数的服务器和操作系统上运行,而且使用PHP完全是免费的。根据2013年4月的统计数据,PHP已经被安装在超过2亿4400万个网站和210万台服务器上。
PHP在Windows上有专门的官方移植编译项目,并且分多个VC编译器版本和线程安全特性来提供不同的版本支持。
PHP和微软的ASP/VBScript/JScript体系、Sun升阳微系统公司的JSP/Java体系,以及CGI/Perl等处于竞争地位。
版本历史
版本 |
发布日期 |
结束支持日期 |
说明 |
1.0 |
1995年6月8日 |
正式名称为"Personal Home Page Tools (PHP Tools)",第一次使用了"PHP"的名字。 |
|
2.0 |
1996年4月16日 |
针对PHP 1.0的改进版,速度更快、体积更小,更容易产生动态网页。 |
|
3.0 |
1998年6月6日 |
2000年10月20日 |
开发方式改成多人共同参与。Zeev Suraski和Andi Gutmans为了这个版本重写了剖析引擎。 |
4.0 |
2000年5月22日 |
2001年6月23日 |
改成以Zend引擎作为语法分析器,具有两阶段剖析/标签剖析系统等先进功能。 |
4.1 |
2001年12月10日 |
2002年3月2日 |
加入"超全局变量"(superglobals)功能,包含了$_GET、$_POST、$_SESSION等。 |
4.2 |
2002年4月22日 |
2002年9月6日 |
默认取消register_globals功能。从网络接收的数据将不会设置成全局变量,增加程序安全性。 |
4.3 |
2002年12月27日 |
2005年3月31日 |
加入命令行可执行文件,称为CLI,用以补充CGI |
4.4 |
2005年7月11日 |
2008年8月8日 |
Added man pages for phpize and php-config scripts. |
5.0 |
2004年7月13日 |
2005年9月5日 |
推出有着新的对象模型的Zend Engine II。 |
5.1 |
2005年11月24日 |
2006年8月24日 |
在往重新设计的PHP引擎引入编译变量时做了性能提升。添加了PHP数据对象(PDO)作为访问数据库的统一接口。 |
5.2 |
2006年11月2日 |
2011年1月6日 |
默认打开"过滤"的扩展。本地的JSON支持。 |
5.3 |
2009年6月30日 |
2014年8月14日 |
支持命名空间;使用XMLReader和XMLWriter增强XML支持;支持SOAP ,延迟静态绑定,跳转标签(有限的goto,闭包,Native PHP archives。 |
5.4 |
2012年3月1日 |
2015年9月3日 |
支持Trait、简短数组表达式。移除了register_globals, safe_mode, allow_call_time_pass_reference, session_register(), session_unregister(), magic_quotes以及session_is_registered()。加入了内建的Web服务器。增强了性能,减小内存使用量。 |
5.5 |
2013年6月20日 |
2016年7月10日 |
支持generators,用于异常处理的finally ,将OpCache(基于 Zend Optimizer+)加入官方发布中。 |
5.6 |
2014年8月28日 |
2018年12月31日 |
支持常量标量表达式、可变参数函数、指数运算符,增加phpdbg SAPI、统一的默认字符集。 |
6.x |
未发布 |
不适用 |
取消掉的、从未正式发布的PHP版本。 |
7.0 |
2015年12月3日 |
2018年12月3日 |
Zend Engine 3 (性能提升并在Windows上支持 64-bit 整数),统一的变量语法, 基于抽象语法树编译过程。 |
7.1 |
2016年12月1日 |
2019年12月1日 |
void返回值类型,类常量可见性修饰符 |
7.2 |
2017年11月30日 |
2020年11月30日 |
|
7.3 |
2018年12月6日 |
未表明 |
PHP开发环境
安装配置PHP运行环境LAMP(Linux, Apache, MySQL, PHP/Perl/Python)和WAMP(Windows, Apache, MySQL, PHP/Perl/Python)
PHP可以在许多的不同种的服务器、操作系统、平台上运行,也可以和许多数据库系统结合。
1, 操作系统:Windows、Linux、Unix等
2, Web服务器: Apache(同类开源中最流行)、IIS、Netscape/iPlanet等。PHP解析软件有CGI模式(多进程,安全但负荷大)和Moudle ISAPI(减负但模块崩溃会连累服务器)模式,还有FastCGI(优化多进程处理的CGI,如IIS)模式。Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全,为解决线程并发,加入了TSRM,性能稍差)和None Thread Safe(NTS,非线程安全)之分。所以使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。
3,数据库管理系统:MySQL同类开源中最流行,PHPMyAdmin是着名PHP开源MySQL管理软件、SQLServer、Oracle、InterBase、mSQL、PostgreSQL、Sybase、ODBC、Infomix
4, PHP库: PHP Library
5, PHP-GTK扩展:PHP-GTK是面向PHP的、绑定了GTK+的一个扩展。它提供了对于GTK+类和函数的面向对象的访问,极大地简化了编写客户端跨平台图形用户界面程序的工作。
6, 程序调试:
使用Xdebug的XDebugClient和WebGrind两个开源工具:xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_handler="dbgp"|设置完毕并启动工具后在网址后加?XDEBUG_SESSION_START=mysession即可调试
使用Firefox+FirePHP+FireBug进行在线调试:
PHP软件工具
PHP编辑器:PhpStorm是最强大的PHP IDE,但耗内存。Netbeans for PHP也比较强大。Zend Studio是官方开发的PHP IDE,但它是用JAVA开发的速度上有欠缺。当然,你也可以使用其他的PHP编辑器如 EditPlus2 等来开发 PHP。
PHP基础教程
1, PHP语法基础
PHP高级应用
1, PHP的代码逻辑分离:PHP模板
2, PHP面向对象编程: PHP框架设计
3,PHP游戏开发
参见
PHP编程语言的官方文档中曾写过“PHP是世界上最好的语言,那其他的语言如何呢?”,因此其经常被华语圈的程序员调侃为是世界上最好的语言.PHP是最好的语言这个梗不是出自别处,而就是出自PHP的官方文档2001.07!
PHP is the best language for web programming,but what about other languages?
PHP是网络编程最好的语言,但其他语言又怎样呢?
PHP项目的吉祥物是一只蓝象
- 使用Firefox+FirePHP进行在线调试:Your
FirePHP Headquarters| 采用firephp调试php程序| firefox + firedug + firephp 安装+学习+使用|
其对应的英文原文为:[http://www-128.ibm.com/developerworks/opensource/library/os-debug/?ca=dgr-lnxw06PHPEclipseDebugging techniques for PHP programmers]
- PHP错误信息
Warning: Cannot modify header information - headers already sent by问题 BOM去除法
PHP单元测试工具:SimpleTest PHPUnit 分析测试覆盖率
PHP项目文档生成工具|:phpxref 修改PhpDocumentor默认编码| PhpDocumentor标记使用说明] [http://qtutu.com/blog/?p=257|PHP文档工具——phpDocumentor PHPDoctor - 一个更加实用的PHP文档生成工具|
- Eclipse For PHP
- PHP 完全中文手册
3, PHP 安装指南
- PHP开发环境
参见:
10分钟自学phpSams.Sams.Teach.Yourself.PHP.in.10.Minutes.Mar.2005.eBook-LiB.chm 364k
Eclipse.swf 427k
Eclipse_cvs.swf 1462k
Eclipse_java.swf 1435k
Eclipse_log4j.swf 1124k
Eclipse_setup.swf 1100k
Eclipse中文教程Doc.rar 5960k
Eclipse入门教程.doc 862k
GettingStartedWithTheZendFrameworkSimplifiedChinese131.pdf 323k
GettingStartedWithZendAuthSimplifiedChinese102.pdf 189k
IBM_学习PHP.rar 5968k
PHPEclipse-A_User_Guide.pdf 5835k
PHPEclipse最新版用户手册.pdf 5835k
PHP入门教程.CHM 981k
The Elements of User Experience.pdf 17k
php中文手册.chm 5965k
php设计模式.chm 1123k
php Documentor 1.2.2 使用说明规范(PHP5使用)
http://www.speedframework.cn/bbs/viewthread.php?tid=99 Eclipse的php语言插件PDT应用介绍.
http://www.yulei.org/mambo/index.php?option=com_content&task=view&id=17&Itemid=3 使用Xampp和Eclipse/PDT调试PHP程序
EasyEclipse for PHP 1.2.2.2汉化包
php Documentor 1.2.2 使用说明规范(PHP5使用)
Open Source PHP is a community site dedicated to tracking the best open source PHP projects.
Getting Started with Eclipse PHP Development Tools (PDT)
5 tools every PHP programmer should know about
- PHP建模工具推荐|:DIA