PHP是Hypertext Preprocessor(超文本预处理器)的缩写,是一种服务器端、跨平台、简单、面向对象、解释型、高性能、独立于框架、动态、可移植、HTML嵌入式的脚本语言。其独特的语法吸收了C语言、Java语言和Perl语言的特点,是一种被广泛应用的开源式的多用途脚本语言,易于学习,使用广泛,主要适用于Web开发领域,成为当前世界上最流行的构建B/S模式Web应用程序的编程语言之一。PHP程序文件中的扩展名通常使用“.php”,例如:index.php。
PHP起源于1995年,由Rasmus Lerdorf开发。它是目前动态网页开发中使用最为广泛的语言之一。目前PHP的版本已经更新到PHP 7。
PHP能运行在Windows、Linux等的绝大多数操作系统环境,常与免费Web服务器软件Apache和免费数据库MySQL配合使用于Linux和Windows平台上,具有最高的性价比,这几种技术号称Web开发的“黄金组合”(Linux+Apache+MySQL/MariaDB+Perl/PHP/Python,LAMP)。PHP具有如下优势。
1.易学好用
PHP程序开发快,运行快,技术本身学习快。PHP的主要目标是让Web开发人员只需学习很少的编程知识,就可以建设一个基于Web的应用系统,比如高考志愿填报系统。
2.免费性,开放源代码
和其他技术相比,PHP本身免费且是开源代码,学习成本低,使用成本也低。
3.平台无关性(跨平台)
同一个Web应用程序,无须修改任意源程序,可以运行在UNIX、Linux、Windows、Mac OS等大多数操作系统下。
4.图像处理
PHP可以动态创建图像。PHP图像处理默认使用GD2库(注:GD库扩展文件,可用来处理图片,如生成图片、图片裁剪压缩、给图片打水印等操作)。
5.面向对象编程
PHP较新的版本提供了面向对象的编程方式,不仅提高了代码的重用率,而且为编写代码带来很大的方便。
6.支持广泛的数据库
PHP可操纵多种主流与非主流的数据库,如MySQL、Access、SQL Server、Oracle、DB2等。其中,PHP与MySQL是最流行的组合,它们的组合可以跨平台运行。
7.模板化
PHP模板技术使程序逻辑与用户界面相分离。
8.基于Web服务器
常见的Web服务器有:①IIS(Internet Information Service):运行ASP、ASP.NET脚本,默认占用TCP的80端口;②Tomcat:运行JSP脚本;③Apache:运行PHP的脚本,默认占用TCP的80端口。
PHP通常运行在Apache服务器之上。PHP的运行速度与服务器的速度有关,当服务器的一个PHP页面第一次被访问时,服务器就对它进行编译,只要服务器未关闭,则往后其他客户机访问该页面时,不必再编译。因此,PHP有很高的运行速度。
PHP脚本程序的运行需要借助于Web浏览器、PHP预处理器和Web服务器的支持,必要时还需要借助数据库服务器来获取和保存数据。
1.Web浏览器
Web浏览器(Web Browser)也叫网页浏览器,简称浏览器。浏览器是用户最为常用的客户端程序,主要功能是显示HTML网页内容,并让用户与这些网页内容产生互动。常见的浏览器有微软的Internet Explorer(简称IE)浏览器、Mozilla的Firefox浏览器等。
2.HTML
HTML是网页的静态内容,这些静态内容由HTML标记产生,Web浏览器识别这些HTML标记并解释执行。例如Web浏览器识别HTML标记“<br/>”,将“<br/>”标记解析为一个换行。在PHP程序开发过程中,HTML主要负责页面的互动、布局和美观。
3.PHP预处理器
PHP预处理器(PHP Preprocessor)的功能是将PHP程序中PHP代码解释为文本信息,这些文本信息中可以包含HTML代码。
4.Web服务器
Web服务器(Web Server)也称为WWW(World Wide Web)服务器,功能是解析HTTP。
当Web服务器接收到浏览器的一个HTTP动态请求时,Web服务器会调用与请求对应的程序,程序经PHP预处理器解释执行后,Web服务器向浏览器返回HTTP响应,该响应通常是一个HTML页面。浏览器接收到该HTTP响应后,将执行结果显示在浏览器或进行其他处理。
常见的Web服务器有微软的Internet Information Server(IIS)服务器、IBM的WebSphere服务器、开源的Apache服务器等。由于Apache具有免费、速度快且性能稳定等特点,它已成为目前最为流行的Web服务器。本书将使用Apache服务器部署PHP程序
注:大部分Web服务器仅仅提供一个可以执行服务器程序和返回响应的环境,单纯的Web服务器只能响应静态页面(例如不包含任何PHP代码的HTML页面)的请求。也就是说,如果Web浏览器请求的是静态页面,此时只需要Web服务器响应该请求;如果浏览器请求的是动态页面(例如页面中包含了PHP代码),此时Web服务器会委托PHP预处理器将该动态页面解释为HTML静态页面,然后再将解释后的静态页面返回给浏览器进行显示。
5.数据库服务器
数据库服务器(DataBase Server)是一套为应用程序提供数据管理服务的软件,这些服务包括数据管理服务(例如数据的添加、删除、修改、查询)、事务管理服务、索引服务、高速缓存服务、查询优化服务、安全及多用户存取控制服务等。
常见的数据库服务器有甲骨文的Oracle和MySQL、微软的SQL Server、IBM的DB2、SAP的Sybase以及Oracle公司的MySQL数据库服务器。由于MySQL具有体积小、速度快、免费开源等特点,许多中小型Web系统选择MySQL作为数据库服务器。本书将选用MySQL讲解有关PHP应用程序中数据库开发方面的知识。
PHP是基于服务器端运行的脚本程序语言,实现数据库和网页之间的数据交互。
一个完整的PHP系统由以下几个部分构成。
l)操作系统:网站运行服务器所使用的操作系统。PHP不要求操作系统的特定性,其跨平台的特性允许PHP运行在任何操作系统上,例如,Windows、Linux等。
2)Web服务器(Web Server):主要用于存储大量的网络资源(比如图片,视频等资源)供用户访问和处理HTTP请求。
3)PHP预处理器(PHP Preprocessor):实现对PHP文件的解析和编译,将PHP程序中的代码解释为文本信息。
4)数据库(Database,DB):存储和管理数据的容器。PHP支持多种数据库系统,包括MySQL、SQL Server、Oracle及DB2等。
5)Web浏览器(Web Browser):主要用于客户端显示HTML网页内容,并让用户与这些网页互动。由于PHP在发送到浏览器的时候已经被解析器编译成其他的代码,所以PHP对浏览器没有任何限制。常见的浏览器有Internet Explorer(简称IE)浏览器、360浏览器、搜狗浏览器、火狐浏览器、世界之窗浏览器、谷歌浏览器Chrome等。
如图1-1所示,PHP工作原理如下。
图1-1 PHP工作原理
1)客户端浏览器向Apache服务器发送请求指定页面,例如test.php。
2)Apache服务器得到客户端请求后,查找test.php页面。
3)Apache服务器调用PHP解释器将PHP脚本解释成为客户端代码HTML。
4)Apache服务器将解释之后的页面发送给客户端浏览器。
5)客户端浏览器对HTML代码进行解释执行,用户就会看到请求的页面。
注:Apache服务器本身是一个Web服务器,只负责接收和响应用户请求;无法对PHP脚本进行解释,所以需要Apache+PHP协同工作。
学习每一种编程语言,都应该讲究方法、策略,别人的学习经验可以借鉴,但不要生搬硬套。应该学会自己总结、分析、整理出一套适合自己的学习方法。这里结合编者多年的程序开发和教学所总结出来的学习经验,供广大PHP程序开发者分享。
1)掌握HTML网页制作基础知识,任何网站都是由网页组成的,学习网站开发的前提是先学会制作网页,因此必须掌握HTML、CSS、JavaScript等网页制作基础知识,达到可自行制作完整HTML网页的程度。
2)学会搭建PHP开发环境,并选择一种适合自己的开发工具。
3)掌握PHP基础语法和函数库,理解动态编程语言的工作原理。
4)学会将PHP与HTML结合开发动态网页。
5)学会PHP与MySQL数据库结合开发数据库存取操作程序。几乎所有网站都需要用到数据库存取操作,因此需要学会数据库的连接、查询、添加、修改和删除等常用数据库编程知识。
6)多实践、多思考、多请教。学习每一种编程语言,都应该在掌握基本语法的基础上反复实践。大部分新手之所以觉得概念难学,是因为没有通过实际操作来理解概念的意义。边学边做是最有效的方式,对于PHP的所有语法知识都要亲自实践,只有了解各个程序代码会起到什么作用之后,才会记忆深刻。