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, 程序调试:

  1. 使用Xdebug的XDebugClient和WebGrind两个开源工具:xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_handler="dbgp"|设置完毕并启动工具后在网址后加?XDEBUG_SESSION_START=mysession即可调试

  2. 使用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游戏开发 

参见

  1. PHP编程语言的官方文档中曾写过“PHP是世界上最好的语言,那其他的语言如何呢?”,因此其经常被华语圈的程序员调侃为是世界上最好的语言.PHP是最好的语言这个梗不是出自别处,而就是出自PHP的官方文档2001.07!

    PHP is the best language for web programming,but what about other languages?

    PHP是网络编程最好的语言,但其他语言又怎样呢?

  2. PHP项目的吉祥物是一只蓝象

  3. 使用Firefox+FirePHP进行在线调试:Your FirePHP Headquarters| 采用firephp调试php程序| firefox + firedug + firephp 安装+学习+使用|

    PHP 应用程序调试

    其对应的英文原文为:[http://www-128.ibm.com/developerworks/opensource/library/os-debug/?ca=dgr-lnxw06PHPEclipseDebugging techniques for PHP programmers]

  4. PHP错误信息

    Warning: Cannot modify header information - headers already sent by问题 BOM去除法

    Wordpress中要注意的UTF-8的BOM问题

     PHP单元测试工具:SimpleTest PHPUnit 分析测试覆盖率

    PHP项目文档生成工具|:phpxref 修改PhpDocumentor默认编码| PhpDocumentor标记使用说明] [http://qtutu.com/blog/?p=257|PHP文档工具——phpDocumentor PHPDoctor - 一个更加实用的PHP文档生成工具|

  5. Eclipse For PHP

    Eclipse php开发工具

  6. PHP 完全中文手册

    3, PHP 安装指南

    PHP 函数索引

     黑客基地PHP视频教程

    IBM之学习PHP教程

  7. PHP开发环境

    Eclipse For PHP

    QeePHP和FleaPHP| ThinkPHP|

    参见:

    PHP API 框架开发的学习|

    使用PHP创建一个面向对象的博客|

    Yii Framework 源码阅读笔记(述)|

    PHP框架Solar PHP---中文手册|

    .htaccess在线生成|

    10分钟自学phpSams.Sams.Teach.Yourself.PHP.in.10.Minutes.Mar.2005.eBook-LiB.chm 364k

    24小时学会使用PHP MySQL and Apache(II)Sams.Teach.Yourself.PHP.MySQL.and.Apache.in.24.Hours.Second.Edition.eBook-DDU.chm 4307k

    EasyEclipseForPHP教程.doc 813k

    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

    ZendPlatform中文使用手册.doc 861k

    php中文手册.chm 5965k

    php设计模式.chm 1123k

    《曹鹏PHP+MySQL视频教程》目录

    Eclipse PDT All in one

    Eclipse PDT 的配置

    php入门教程

    FleaPHP框架

    PHP文档工具(PHP5使用)

    非常实用的PHP文档工具——PHPDoc(PHP4使用)

    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

    EasyEclipse for PHP 1.2.2.2汉化包

    PHP文档工具(PHP5使用)

    非常实用的PHP文档工具——PHPDoc(PHP4使用)

    php Documentor 1.2.2 使用说明规范(PHP5使用)

    php入门教程

    Open Source PHP is a community site dedicated to tracking the best open source PHP projects.

    优化PHP代码的40条建议

    Getting Started with Eclipse PHP Development Tools (PDT)

    20 余款 PHP 资源

    PHP程序员的优化调试技术和技巧]

    完全手册:PHP网络开发详解

    5 tools every PHP programmer should know about

    从初级入门到项目负责人 PHP教程全系列推荐

    Haohappy的专栏--PHP5研究中心

    如何使用PHP开发高效的WEB系统(转)

    phpDocumentor: The complete documentation solution for PHP

    PHP单元测试 Notepad++ PHP的轻量编辑器

    PHP开源资源 翻译-PHP安全

    使用PHP和GD来抓屏

    PHP5面向对象初级入门

    PHP中的面向对象和面向过程

    PHP实战 第一章 程序调试 简单PHP新闻程序教程

    PHP+MySQL的一些教材、下载

    为什么PHP令人不爽(对于大型系统)

    PHP、CakePHP哪凉快哪呆着去

    PHP反对者观点:"PHP 对比 PERL"

  8. PHP建模工具推荐|:DIA

    Blobsy:MSN聊天機器人

    PPForm 是一套PHP在視窗上的RAD開發平台

    PHP 在 Windows 下的解决方案

    PHP反编译 Vulcan Logic Disassembler