第1章 PHP 起步
欢迎来到 PHP 的世界!
PHP 语言是最受欢迎的 Web 开发语言之一。它以学习简单、开发快速、性能稳定而倍受 Web 开发 人员的青睐。PHP 不仅使用人员众多、数以万计的 Web 站点用它构建,而且有强大的社区支持,使得 无论是用 PHP 开发 Web 应用,还是学习 PHP 语言,都会快速有效、事半功倍。在各种 Web 开发语言、 框架、概念纷扰的今天,PHP 仍以其独特魅力吸引更多的 Web 开发人员学习和使用。
选择 PHP,没错的!
1.1 初识 PHP
PHP 是一种服务器端的、嵌入 HTML 的脚本语言。它的语法结构和 C 语言极为相似。为了能够快 速地编写动态 Web 页面,PHP 还加入了自己的某些语言特征,这些特征都非常容易理解和使用。先来 看一个嵌入有 PHP 代码的 HTML 文档。
<html>
<head><title>Welcome</title><head>
<body>
<?php
echo "Welcome to PHP's world!";
?>
</body>
</html>
上面代码中由“<?php”和“?>”所包含部分,即“echo "Welcome to PHP's world!";”,就是 PHP 代码,这个 PHP 最终生成的 HTML 文档如下所示。
<html>
<head><title>Welcome</title><head>
<body>
Welcome to PHP's world!
</body>
</html>
事实上,最基本的 PHP 编程,其实就是在 HTML 文档中嵌入一些 PHP 代码,这些代码经 Web 服 务器执行后,产生的内容和其他的 HTML 组合在一起,从而生成用户所看到的 HTML 文档。一般情况 下,用 PHP 控制 Web 页面的动态内容,用 HTML 构建静态内容。
凡是有 C 语言基础的读者,都可以轻松学习和理解 PHP。因为 PHP 语法结构简单,并且提供了大 量预定义变量和函数,即便没有任何编程语言基础的读者,通过阅读本书,也可以轻松学习和掌握 PHP。
·3·
1.2 LAMP——锋利四剑客:Linux、Apache、MySQL 和 PHP
要想学习 PHP,就有必要了解和 PHP 关系密切的其他 3 种技术:Linux 操作系统、Apache 网络服 务器和 MySQL 数据库。
LAMP 这个名词最早由 Michael Kunze 创造,用来代表 Linux 操作系统、Apache 网络服务器、MySQL 数据库和 PHP(如果可以,Perl 和 Python 也是不错的选择),LAMP 正是这 4 种技术的首字母。
PHP 作为强有力的 Web 开发语言,和 Linux、Apache、MySQL 的支持是密不可分的。它们都是开 源软件,并且有强有力的社区支持,它们的完美组合构成了当今 Web 开发世界中不可忽视的一极重要 力量。而且,这支力量近年一直在不断地变得更加强大。虽然,这 4 种技术并不是专门被设计成在一起 工作的,但多年来,这些软件之间的兼容性不断完善,不仅完改善了个组件之间的协作,扩展出更多的 功能,而且在目前几乎所有的 Linux 版本中都默认包含了这些产品,使得这些产品共同组成了一个强大 的 Web 应用平台。
注意:LAMP 并不单纯代表了这 4 种技术,更深层面的是,LAMP 是 1 种 Web 应用开发的解决方 案,可以用这个解决方案构建、运行各种商业应用和其他各种网络应用。因为是开源解决方案,因而也 更加有竞争力和吸引力,LAMP 无论在质量、性能还是价格方面都成为各行业在信息化时不得不考虑的 平台。
图 1.1 说明了 LAMP 的架构体系。
图 1.1 LAMP 体系架构
Linux 处于 LAMP 体系的最下层,提供 Apache 和 MySQL 的运行环境。PHP 位于 LAMP 体系的最 上层,由 Apache 支持对 PHP 代码的解析,同时 PHP 和 MySQL 交互,完成对数据库的操作。
要完全掌握 LAMP 就必须对 Linux、Apache、MySQL 和 PHP 都有全方位的认识,如 Linux 的维护、 Apache 的配置、MySQL 的维护等。在这里之所以介绍 LAMP,主要是让初学者对 PHP 开发的底层架构 的某些方面有个了解,这样可以帮助初学者学习 PHP 及其相关知识。本书主要介绍 PHP 语言及其在 Web 开发方面的应用,因此,对 Linux 系统的操作、维护方面的内容基本没有涉及,对 Apache 的配置 也限制在和 PHP 开发有关的几个点上,而对 MySQL 的介绍相对多些,因为 Web 开发几乎都要建立在 数据库系统之上。
1.3 PHP Web 编程的体系结构和基本内容
概括地说,任何 Web 编程体系,无外乎服务器端和客户端的程序开发。基于 PHP 的 Web 应用开发 也不例外,其中客户端的开发包括使用 HTML 设计 Web 页面,使用样式表控制 Web 页面的显示效果,
·2·
还需要客户端的脚本语言来控制浏览器的特效、验证 HTML 表单数据等,这些脚本语言包括 JavaScript、 VBScript 等。服务器端的开发就需要掌握 PHP 语言和 MySQL 数据库的有关内容。
本节的各小节将对这些内容做简要说明,之后的各节将较为详细地介绍 HTML、样式表和 JavaScript, 它们都是 Web 开发的基础内容,对这些内容不了解的 PHP 初学者有必要掌握。
1.3.1 了解 PHP、HTML、层叠样式表(CSS)和 JavaScript 及其关系
作为服务器端的脚本语言,PHP 多数情况下都是和 HTML 相互搭配来使用的。PHP 用来完成和逻 辑有关的动态内容。PHP 程序执行的输出结果,通过 HTML 文档表现给用户。一般情况下,在 HTML 页面中需要输出数据的地方内嵌入 PHP 代码,这个页面也就成为了 PHP 程序。
在创建 HTML 页面时,都要考虑页面设计。如页面布局、页面颜色、字体、边距空白等。这些设 置可以单独在页面中进行,但那样会使 HTML 页面变得臃肿,也不便于将来的维护。层叠样式表解决 了这些问题,它允许页面设计人员在层叠样式表(即 CSS)文件里设定页面表现效果,如字体大小、边 距控制等。CSS 使得 HTML 页面的表现更加丰富、美观,也更加容易维护。
有时,在 HTML 页面中需要对浏览器进行控制,如新建窗口、模拟浏览器的返回按钮等。这就需 要在客户端使用 JavaScript 完成这种效果。在与 HTML 表单进行交互时,比如验证用户提交的数据,也 可以通过 JavaScript 实现。JavaScript 还可以用来处理用户 cookie。
简单地说,PHP 在服务器端执行,执行结果会通过 HTML 页面展示给客户端。HTML 页面的一些 样式需要通过 CSS 来设置,以便更丰富地设计 Web 页面,而对 HTML 表单数据的验证可以通过 JavaScript 来实现。
1.3.2 HTML 文档
HTML 文档就是使用 HTML 标记语言创建的文档。通过浏览器浏览的网页,几乎都是 HTML 文档, 或者是由服务器端程序生成的 HTML 文档。下面就是一个 HTML 文档的代码。
<html>
<head><title> HTML 文档示例</title></head>
<body>
<h1>HTML 语言</h1>
<p>First Web Page</p>
</body>
</html>
每个 HTML 文档由 HTML 标签和文档内容构成。也可以这么说,通过 HTML 标签为一个普通文档 加上标记,就构成一个 HTML 文档。例如上面的文档,实际内容(这里将文档标题除外)如下。
HTML 语言
First Web Page
对“HTML 语言”,加注标记“<h1>”和“</h1>”,即使之成为一级标题。
对“First Web Page”,加注标记“<p>”和“</p>”,即使之成为一个段落。
提示:浏览器通过分析 HTML 标签后,显示出带有一定格式的文档内容,而 HTML 标签本身并不 会被显示出来。
·3·
1.3.3 使用样式表实现页面效果
按照 HTML 的设计初衷,文档的内容、结构与格式是分离开来的。如果过多地在 HTML 文档中控 制页面的显示效果,会使 HTML 文档的维护越来越难以维护,也违背了 HTML 的设计初衷。为了解决 这个问题,引入了样式表的概念。一个简单的样式表如下所示。
说明:样式表负责控制页面的格式和显示效果,HTML 文档负责控制结构和显示内容。
p{
font-size:10pt;
}
这个样式表定义的含义是,HTML 文档中所有用<p>标签定义的内容,都将使用 10pt 大小的字体显 示。关于样式表语法和如何使用样式表,将在后面做讲述。
1.3.4 客户端的响应
Web 页面作为客户端,有时需要直接对用户的请求作出响应。这主要是通过客户端脚本来实现,这 些脚本语言包括 JavaScript 等。
可以在 HTML 页面中加入 JavaScript 脚本,这些脚本可以直接在浏览器里执行。这样,就可以达到 在客户端响应用户请求的需求。一般这样的响应主要是验证表单数据、用户操作提示等。
本书将在 1.6 节介绍 JavaScript。
1.3.5 嵌入式脚本页面
PHP 代码一般都是嵌入在 HTML 文档当中,通过服务器解释这些 PHP 代码,并用代码执行产生的 结果替换 PHP 代码内容,最后返回给用户的是内嵌代码执行后的 HTML 文档。例如内嵌生成“Hello World”的 HTML 页面代码如下:
<html>
<head>
<title>HTML-PHP</title>
</head>
<body>
<h2><?php ehco "Hello World"; ?></h2>
</body>
</html>
其中<?php ehco "Hello World"; ?>就是内嵌在 HTML 文档中的 PHP 代码。当用户浏览该页面时,实 际返回的结果如下:
<html>
<head>
<title>HTML-PHP</title>
</head>
<body>
<h2>Hello World</h2>
</body> </html>