任务一 认识PHP
1. Web开发简介
PHP是一种Web开发语言。在学习PHP之前,先来认识一下什么是Web技术。Web的本意是蜘蛛网,在计算机领域中称为网页。Web是一个由许多互相链接的超文本文件组成的系统,通过互联网访问。在这个系统中,每个有用的文件称为一个“资源”。这些资源通过超文本传输协议(HyperText Transfer Protocol,HTTP)传送给用户,而用户通过访问链接来获得资源。
在Web开发中有许多重要的基础知识,如软件架构、URL地址、HTTP协议等,下面分别进行讲解。
(1)软件架构
软件开发有两种基本的软件架构:B/S架构和C/S架构。B/S(Browser/Server)架构,表示浏览器/服务器的交互;C/S(Client/Server)架构,表示客户端/服务器的交互。下面通过图1-2来展示它们的区别。
图1-2 C/S与B/S架构
Web开发是基于B/S架构的软件开发。基于B/S架构的Web应用可以在个人电脑、手机等装有浏览器的智能设备上浏览,用户可以注册、登录及发布内容。B/S架构的软件在升级、维护方面都是在服务器端进行的,用户只需要刷新网页即可浏览最新内容,因此B/S架构的软件更易维护。
(2)URL地址
在Internet上的Web服务器中,每一个网页文件都有一个访问标记符,用于唯一标识它的访问位置,以便浏览器可以访问到,这个访问标记符称为统一资源定位符(Uniform Resource Locator,URL)。URL中包含了Web服务器的主机名、端口号、资源名以及使用的网络协议,具体示例如下。
http://www.itcast.cn:80/index.html
在上面的URL中,“http”表示传输数据所使用的协议,“www.itcast.cn”表示要请求的服务器主机名,“80”表示要请求的端口号,“index.html”表示请求的资源名称。其中,端口号可以省略,省略时默认使用80端口进行访问。
(3)HTTP
超文本传输协议(HyperText Transfer Protocol,HTTP)是浏览器与Web服务器之间数据交互需要遵循的一种规范。它是由W3C组织推出的,专门用于定义浏览器与Web服务器之间数据交换的格式。
对于Web开发者而言,HTTP是一个重要的理论基础,在项目开发的过程中有大量的应用。
2. PHP概述
超文本预处理器(Hypertext Preprocessor,PHP)是一种在服务器端执行的脚本语言,用于开发动态网站。相比静态网站而言,动态网站不仅需要设计网页,还需要通过数据库和编程使网站的内容可以根据不同情况动态变更,从而增强网页浏览者与Web服务器之间的信息交互。
在学习网站开发时,读者应该对网页制作有所了解。网页的本质是超文本标记语言(HyperText Markup Language,HTML),而PHP(超文本预处理器)能够在服务器端动态生成HTML。通常开发者只要写好HTML模板,在数据变化的位置嵌入PHP代码,就能实现动态网页。具体示例如图1-3所示。
图1-3 PHP代码嵌入HTML
图1-3左侧是一个典型的PHP嵌入HTML的代码,其中PHP的代码写在“<?php ?>”标记中,该行代码用于计算“20+30”的结果。当PHP程序执行后,得到的结果为右侧的HTML代码。
PHP最初为Personal Home Page的缩写,表示个人主页,于1994年由Rasmus Lerdorf创建。程序最初用来显示Rasmus Lerdorf的个人履历以及统计网页流量。后来又用C语言重新编写,加入表单解释器,并可以访问数据库,成为PHP的第二版:PHP/FI(FI即Form Interpreter,表单解释器)。
从PHP/FI到现在的最新版本PHP 7.0,PHP经过多次重新编写和改进,发展十分迅猛,一跃成为当前最流行的服务器端Web程序开发语言。
3. PHP工作流程
PHP是运行于服务器端的脚本语言,实现了数据库与网页之间的数据交互。一个完整的PHP网站系统由以下几部分组成。
• 操作系统:网络中的服务器也是一台计算机,因此需要操作系统。PHP有着良好的跨平台性,支持Windows、Linux等操作系统。
• Web服务器:当一台计算机中安装操作系统后,还需要安装Web服务器软件才能进行HTTP访问。常见的Web服务器软件有Apache、IIS、Nginx等。
• 数据库:用于网站数据的存储与管理。PHP支持多种数据库,包括MySQL、SQL Server、Oracle、DB2等。
• PHP软件:用于解析PHP脚本文件、访问数据库等,是运行PHP代码所必需的软件。
• 浏览器:是浏览网页的客户端。由于PHP脚本是在服务器端运行的,因此通过浏览器看到的是经过PHP处理后的HTML结果。
为了使读者更直观地了解PHP的工作流程,接下来通过一个图例进行演示,如图1-4所示。
图1-4 PHP工作流程
从图1-4中可以看出,浏览器请求的URL地址为“http://www.bxg.com/test.php”,这表示浏览器与服务器使用HTTP进行通信,请求的服务器为“www.bxg.com”,端口号80(默认),请求的资源路径为“test.php”。当HTTP请求发送后,服务器端监听80端口的Apache软件就会收到请求,由于请求的是一个PHP脚本,因此先由PHP处理“test.php”脚本文件,将处理后的HTML结果通过HTTP响应返回浏览器。PHP在处理脚本时可以和数据库进行交互,通过专业的数据库软件可以更好地管理网站中的数据。
在学习网站开发时,还需要对相关的技术有一个广泛了解。下面通过表1-1列举网站开发涉及的一些常用技术。
表1-1 PHP网站开发涉及的技术
在表1-1中,HTML、CSS、JavaScript需要配合网页设计类的书籍进行学习,MySQL数据库(包括SQL语言)需要配合专业的MySQL书籍进行学习。本书将对Apache、MySQL软件的安装与使用、基本SQL语句的编写进行简要讲解,针对服务器端脚本语言PHP、浏览器端jQuery库、异步通信技术Ajax,以及数据交换格式JSON等技术进行详细讲解。