PHP是什么
PHP 的全称是 “PHP Hypertext Preprocessor”,这是一个递归缩写。因此,”PHP” 实际上是 “PHP: Hypertext Preprocessor” 的缩写。PHP 是一种开源脚本语言,被广泛用于服务器端编程和Web开发。由于其简单易学和丰富的功能库,它在互联网应用领域得到了广泛的应用和支持。PHP脚本是在服务器上执行的。当客户端请求一个包含PHP代码的网页时,服务器会解释执行PHP代码,并生成动态内容,然后将结果发送给客户端浏览器。
PHP 是免费的,并且可以从官方网站下载和使用。作为开源软件,PHP的源代码对任何人都是开放的,用户可以根据自己的需求对其进行修改和定制。同时,PHP拥有庞大的开发者社区提供支持和更新,使其保持持续改进和发展。
PHP可嵌入到 HTML中,尤其适合 web 开发。
<!DOCTYPE html> <html> <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html>
PHP的灵活性使得开发者可以轻松地在HTML页面中嵌入动态内容。比如,使用PHP的表单处理功能,可以在HTML表单中添加PHP代码来验证用户的输入数据并进行相应的处理。这样,无论用户输入什么数据,我们都可以通过嵌入的PHP代码来对其进行处理,实现业务逻辑。
PHP能做什么
PHP脚本主要用于以下三个领域:
1、服务端脚本
这是 PHP 最传统,也是最主要的目标领域。开展这项工作需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、web 服务器和 web 浏览器。需要在运行 web 服务器时,安装并配置 PHP,然后,可以用 web 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。如果只是实验 PHP 编程,所有的这些都可以运行在自己家里的电脑中。
2、命令行脚本
可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheduler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。
3、编写桌面应用程序
对于有着图形界面的桌面应用程序来说,PHP 或许不是一种最好的语言,但是如果用户非常精通 PHP,并且希望在客户端应用程序中使用 PHP 的一些高级特性,可以利用 PHP-GTK 来编写这些程序。用这种方法,还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。
PHP 能够在所有的主流操作系统上使用,包括 Linux、Unix 的各种变种(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft Windows、macOS、RISC OS 等。今天,PHP已经支持了大多数的 web 服务器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal Web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。对于大多数的服务器,PHP 提供了一个模块;还有一些 PHP 支持 CGI 标准,使得 PHP 能够作为 CGI 处理器来工作。
综上所述,使用 PHP,可以自由地选择操作系统和 web 服务器。同时,还可以在开发时选择使用面对过程和面对对象,或者两者混和的方式来开发。尽管 PHP 4 不支持 OOP 所有的标准,但很多代码仓库和大型的应用程序(包括 PEAR 库)仅使用 OOP 代码来开发。PHP 5 弥补了 PHP 4 的这一弱点,引入了完全的对象模型。
使用 PHP,并不局限于输出 HTML。PHP 还能被用来动态输出图像、PDF 文件甚至 Flash 动画(使用 libswf 和 Ming)。还能够非常简便的输出文本,例如 XHTML 以及任何其它形式的 XML 文件。PHP 能够自动生成这些文件,在服务端开辟出一块动态内容的缓存,可以直接把它们打印出来,或者将它们存储到文件系统中。
PHP 最强大最显著的特性之一,是它支持很大范围的数据库。使用任何针对某数据库的扩展(例如 mysql)编写数据库支持的网页非常简单,或者使用抽象层如 PDO,或者通过 ODBC 扩展连接到任何支持 ODBC 标准的数据库。其它一些数据库也可能会用 cURL 或者 sockets,例如 CouchDB。
PHP 还支持利用诸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 环境)等不计其数的协议的服务。还可以开放原始网络端口,使得任何其它的协议能够协同工作。PHP 支持和所有 web 开发语言之间的 WDDX 复杂数据交换。关于相互连接,PHP 已经支持了对 Java 对象的即时连接,并且可以透明地将其用作 PHP 对象。
PHP 具有极其有效的文本处理特性,包括 Perl 兼容正则表达式(PCRE)以及许多扩展和工具可用于解析和访问 XML 文档。PHP 将所有的 XML 功能标准化于坚实的 libxml2 扩展,并且还增加了 SimpleXML,XMLReader 以及 XMLWriter 支持以扩充其功能。
PHP的发展历史
PHP的发展历史可以追溯到1994年,Rasmus Lerdorf创建了一种称为”Personal Home Page Tools”的工具集。这是一个用C语言编写的工具,用于在其个人主页上显示个人信息和统计数据。
随着时间的推移,Lerdorf在工具集中添加了一些新的功能,并将其发展成为一种服务器端脚本语言。最初,这种语言被称为”Personal Home Page/Forms Interpreter”,简称为PHP/FI。
1997年,PHP的第一个正式版本PHP 3发布。该版本引入了许多重要的功能,如支持数据库、正则表达式和更好的Web应用开发能力。这是PHP开始在互联网开发领域崭露头角的阶段。
2000年,PHP 4发布。这个版本进一步改进了性能和稳定性,并引入了一些重要的功能,例如面向对象编程和异常处理。这次发布使得PHP在企业级Web应用开发中更加受欢迎。
2004年,PHP 5发布。这个版本引入了一种全新的内核,称为Zend Engine。它带来了很多重要的改进,包括更好的性能、增强的面向对象特性和更好的错误处理机制。PHP 5也是一个里程碑版本,为PHP的进一步发展奠定了基础。
2012年,PHP 5.4发布。这个版本引入了一些新的语言特性和改进,如更简洁的语法、命名空间支持和短数组语法。
2014年,PHP 5.6发布。这个版本增加了一些新的功能,如可变函数和可变类名,同时还对性能进行了一些优化。
2015年,PHP 7发布。这个版本是PHP发展历史上的一个重要里程碑。它引入了全新的Zend Engine 3,大幅提升了性能和内存管理。同时,PHP 7还引入了一些新的语言特性和改进,例如标量类型声明和返回类型声明。PHP 7的发布被广泛认为是PHP语言的一次重大革新。
2020年11月,PHP 8正式发布,这是PHP编程语言的一个重要里程碑,PHP 8带来了诸多新特性。JIT是PHP8最受关注的特性之一,它是一个可以改善PHP代码性能的工具。JIT编译器可以将PHP代码转换为高性能的本地机器码,从而大幅提升代码的执行速度。在PHP8中,JIT编译器默认关闭,需要手动启用。启用JIT编译器可以通过修改php.ini文件中的配置参数来实现。
2022年12月,PHP8.2发布, PHP 8.2 新增支持在 traits 中定义常量、引入了“Random”扩展和“read-only”类、Disjunctive Normal Form (DNF) 类型,更新了内置 web 服务器的 MIME 类型表,减少了各种函数返回的字符串的内存占用,初步支持 macOS Instrument 的 JIT 性能分析生成,为 Linux 启用 arc4random_buf,为随机字节引入 Glibc 2.36 以上版本。
PHP 8.2 初步支持 Windows for ARM64 平台上的跨平台创建,分配 JIT 缓冲区 Opcache 靠近 PHP .text 字段,以允许使用直接的 IP 相关调用和跳转。新版本还为 PHP Sockets 引入新选项,支持新的 Curl 选项,新的 ZipArchive 方法,废弃动态属性,并优化了一些性能。