PHP动态网站程序设计(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-09 19:43:56

点击下载

作者:唐四薪

出版社:人民邮电出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

PHP动态网站程序设计(第2版)

PHP动态网站程序设计(第2版)试读:

前言

PHP是目前开发动态网站最理想的语言之一。相比其他Web编程语言,PHP具有简单易学、功能强大、成本低廉、安全性较高和运行环境易于配置等优点,是初学者学习Web编程的理想入门语言,且能够用来制作企业级的Web应用程序及动态网站。

近年来,PHP在国内外的应用发展非常迅速,许多大型的电子商务网站(如淘宝网等)都采用PHP作为网站开发的语言;同时,通过对众多软件企业的调查发现,各种企业对PHP开发人才的需求缺口很大。但是与此不相称的是,PHP方面的课程在我国高校教学中并不普遍。我国高校中很多专业都已开设了与Web编程相关的课程,但是该类课程的内容以讲述ASP.NET、ASP或JSP为主,可见PHP尚未在高校教学中引起足够的重视,但PHP的培训课程却在大量培训机构中广泛开设。

为了能编写一本适合高校教学的PHP教材,也为了能方便读者自学,作者在写作本书时注重解决以下问题。(1)针对PHP的运行环境,本书主要介绍安装AppServ集成运行环境,而没有单独介绍PHP运行环境中几种软件的安装方法,因为单独安装和配置各种软件,对初学者来说比较难,也没有必要去学习。(2)在体系结构上仿照一些经典的ASP教材进行编写,如果读者具有ASP编程基础,就能够很快通过体会PHP和ASP的异同,来领会PHP编程的思路。如果读者不具有任何网站编程经验,本书也能循序渐进地让读者掌握PHP网站开发的基本原理。(3)对PHP访问数据库进行了重点讲解。分别介绍了mysql函数、mysqli函数和PDO方法访问数据库,并在介绍完每种方法的原理后,安排了一节实例内容。(4)对PHP的传统内容去粗取精。Web应用程序的功能主要包括查询、添加、删除和修改记录,因此本书对这些功能的实现进行了重点叙述,在普通的PHP程序、生成静态网页的PHP程序中分别实现了查询、添加、删除和修改等基本功能模块。(5)在传统PHP教材的基础上,增加了新的流行内容,如分别在数据库端和Web服务器端实现分页程序、用PHP生成静态HTML文件的新闻系统,以及PHP生成XML或RSS文件。

本书的内容包括PHP网站制作技术的各个方面,如果要将整本书的内容讲授完毕,大约需要54学时,其中可安排18学时的实验。本书带有“*”的部分内容供学有余力的学生自学。

本书在教学安排上有两种方案,如果希望尽早进入PHP数据库编程以提高学生学习PHP的兴趣,可将4.3节、5.3节、5.4节、5.5节放在第7章以后再讲授;而对于编程基础较低的学生,可以按照本书的章节顺序来讲授。

本书提供教学用多媒体课件、实例源文件和习题参考答案,读者可登录人民邮电出版社人邮教育社区(www.ryjiaoyu.com)免费下载,也可与作者联系(tangsix@163.com)。

唐四薪担任本书主编,并编写了第3~8章的内容;湖南中兴网信科技有限公司的李于、陈胜担任本书副主编,并编写了第1章的内容。参加编写工作的还有谭晓兰、喻缘、刘燕群、唐沪湘、刘旭阳、陆彩琴、唐金娟、谢海波、尹军、唐琼、何青、唐佐芝、舒清健、高正东、唐代明等,编写了本书其余部分内容。

本书得到了衡阳师范学院“十三五”专业综合改革试点项目“计算机科学与技术”的支持。

由于编者水平和教学经验有限,书中错误和不妥之处在所难免,欢迎广大读者和同行批评指正。编者2019年9月第1章 动态网站的原理和运行机制

随着“互联网+”时代的到来,各行各业制作网站的热情高涨。目前的网站一般都是动态网站,简单地说,动态网站是一种使用HTTP(Hypertext Transfer Protocol,超文本传输协议)作为通信协议,通过网络让浏览器与服务器进行通信的计算机程序。开发动态网站可分为两个方面:一是网站的界面设计,主要是用浏览器能理解的代码及图片设计网页的界面;二是网站的程序设计,用来实现网站的新闻管理、与用户进行交互等各种功能。1.1 动态网站的原理1.1.1 动态网站的起源

动态网站是一种基于B/S结构的网络程序。那么什么是B/S结构呢?这就先要从网络软件的应用模式说起。

早期的应用程序都是运行在单机上的,称为桌面应用程序。后来由于网络的普及,出现了运行在网络上的网络应用程序(网络软件)。网络应用程序有C/S和B/S两种体系结构。

1. C/S体系结构

C/S是Client/Server的缩写,即客户机/服务器结构,这种结构的软件包括客户端程序和服务器端程序两部分。就像大家常用的QQ等网络软件,需要下载并安装专用的客户端软件(见图1-1),并且服务器端也需要特定的软件支持才能运行。图1-1 C/S结构的QQ客户端界面

C/S结构最大的缺点是不易于部署,因为每台客户端计算机都要安装客户端软件。而且,如果客户端软件需要升级,则必须为每台客户端单独升级。另外,客户端软件通常对客户机的操作系统也有要求,如有些客户端软件只能运行在Windows平台下。

2. B/S体系结构

B/S是Browser/Server的缩写,即浏览器/服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,客户端软件由浏览器来代替(见图1-2),一部分事务逻辑在浏览器端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。目前流行的是三层B/S结构,即表现层、事务逻辑层和数据处理层。图1-2 B/S结构的浏览器端界面

B/S结构很好地解决了C/S结构的上述缺点。因为每台客户端计算机都自带浏览器,就不需要额外安装客户端软件了,也就不存在客户端软件升级的问题了。另外,由于任何操作系统一般都带有浏览器,因此B/S结构对客户端的操作系统也没有要求了。

但是B/S结构与C/S结构相比,也有其自身的缺点,首先因为B/S结构的客户端软件界面就是网页,因此操作界面不可能做得很复杂、漂亮。例如,很难实现树形菜单、选项卡式面板或鼠标右键快捷菜单等(或者虽然能够模拟实现,但是响应速度比C/S中的客户端软件要慢很多)。其次,B/S结构下的每次操作一般都要刷新网页,响应速度明显不如C/S结构。再次,在网页操作界面中,操作大多以鼠标方式为主,无法定义快捷键,也就无法满足快速操作的需求。提示:C/S结构和B/S结构的网络软件,其程序都是分布在客户机和服务器上,因此它们统称为分布式系统(Distributed System)。1.1.2 动态网站的组成与运行

1. 动态网站的组成

动态网站通常由HTML文件、服务器端脚本文件和一些资源文件组成。(1)HTML文件提供静态的网页内容。(2)脚本文件提供程序,实现客户端与服务器之间的交互,以及访问数据库或文件等。(3)资源文件提供网站中的图片、视频等资源,包括图片文件、多媒体文件和配置文件等。

2. 运行动态网站程序的要素

要运行动态网站程序,需要Web服务器、浏览器和HTTP通信协议等要素。(1)Web服务器

运行动态网站需要一个载体,称为Web服务器。一个Web服务器可以部署多个动态网站(或Web应用程序)。

通常Web服务器有两层含义,一方面它代表运行Web应用程序的计算机硬件设备,一台计算机只要安装了操作系统和Web服务器软件,就可算作一台Web服务器。另一方面Web服务器专指一种软件——Web服务器软件,该软件的功能是响应用户通过浏览器提交的HTTP请求,如果用户请求的是PHP脚本,则Web服务器软件将解析并执行PHP脚本,生成HTML格式的文本,并发送到客户端,显示在浏览器中。(2)浏览器

浏览器是用于解析HTML文件(可包括CSS代码和客户端JavaScript脚本)并显示的应用程序,它可以从Web服务器接收、解析和显示信息资源(可以是网页或图像等),信息资源一般使用统一资源定位符(Universal Resource Locator,URL)标识。

浏览器只能解析和显示HTML文件,而无法处理服务器端脚本文件(如PHP文件),这就是为什么可以直接用浏览器打开HTML网页文件,而服务器端脚本文件只有被放置在Web服务器上才能被正常浏览。(3)HTTP通信协议

HTTP是浏览器与Web服务器之间通信的语言。浏览器与服务器之间的会话(见图1-3),总是由浏览器向服务器发送HTTP请求信息开始(如用户输入网址,请求某个网页文件),Web服务器根据请求返回相应的信息,这称为HTTP响应,响应中包含请求的完整状态信息,并在消息体中包含请求的内容(如用户请求的网页文件内容等)。图1-3 浏览器与服务器之间的会话

3. 动态网站与Web应用程序

一般来说,网站的内容需要经常更新,并添加新内容。早期的网站是静态的,更新静态网站的内容是非常烦琐的,例如,要增加一个新网页,就需要手工编辑这个网页的HTML代码,然后再更新相关页面到这个页面的链接,最后把所有更新过的页面重新上传到服务器。

为了提高网站内容更新的效率,我们可以通过构建Web应用程序来管理网站内容。Web应用程序可以把网站的HTML页面部分和数据部分分离开。要更新或添加新网页,只要在数据库中更新或添加记录就可以了,程序会自动读取数据库中的记录,生成新的页面代码发送给浏览器,从而实现了网站内容的动态更新。

可见,Web应用程序能够动态生成网页代码,可以通过各种服务器端脚本语言来编写Web应用程序。而服务器端脚本代码是可以嵌入网页的HTML代码中的,嵌入了服务器端脚本代码的网页就称为动态网页文件。因此,如果一个网站中含有动态网页文件,则这个网站就相当于是一个Web应用程序。

Web应用程序是B/S结构软件的产物。它首先是“应用程序”,与标准的程序语言(如C、C++)编写出来的程序没有本质的区别。然而Web应用程序又有其自身独特的地方,表现为:①Web应用程序是基于Web的,依赖通用的Web浏览器来表现它的执行结果;②需要一台Web服务器,在服务器上对数据进行处理,并将处理结果生成网页,以方便客户端直接使用浏览器浏览。

利用Web应用程序,网站可以实现动态更新页面,以及与用户进行交互(如留言板、论坛、博客、发表评论)等各种功能。但Web应用程序并不等同于动态网站,它们的侧重点不同。一般来说,动态网站侧重于给用户提供信息,而Web应用程序侧重于完成某种特定任务,如基于B/S的管理信息系统(Management Information System,MIS)就是一种Web应用程序,但不能称作网站。Web应用程序的真正核心功能是对数据库进行处理。1.1.3 动态网站开发语言

动态网站开发语言用来编写动态网站的服务器端程序。常见的动态网站开发语言有CGI、PHP、ASP、JSP和ASP.NET等。下面分别进行介绍。

1. CGI

最早能够动态生成HTML页面的技术是通用网关接口(Common Gateway Interface,CGI),由美国的国家超级计算技术应用中心(National Center for Supercomputing Applications,NCSA)于1993年提出。CGI技术允许服务器端应用程序根据客户端的请求,动态生成HTML页面。早期的CGI大多是编译后的可执行程序,其编程语言可以是C、C++等任何通用的程序设计语言,也可以是Perl、Python等脚本语言。但是,CGI程序的编写比较复杂而且效率低,并且每次修改程序后都必须将CGI的源程序重新编译成可执行文件。因此目前很少有人使用CGI技术。

2. PHP

1994年,拉斯马斯·勒德尔夫(Rasmus Lerdorf)发明了专门用于Web服务器编程的PHP工具语言,与以往的CGI程序不同,PHP语言将HTML代码和PHP指令结合成为完整的服务器端动态页面,执行效率比完全生成HTML标记的CGI要高得多。PHP的其他优点包括:跨平台并且开放源代码,支持绝大多数流行的数据库,可以运行在UNIX、Linux或Windows操作系统上。开发PHP时通常搭配Apache Web服务器和MySQL数据库。

3. ASP

1996年,微软(Microsoft)公司推出了ASP 1.0。ASP是Active Server Pages的缩写,即动态服务器页面。它是一种服务器端脚本编程环境,可以混合使用HTML、服务器端脚本语言(VBScript或JavaScript),以及服务器端组件创建动态、交互的Web应用程序。从Windows NT 4.0开始,所有Windows操作系统都提供了互联网信息服务(Internet Information Services,IIS)组件,它可以作为ASP的Web服务器软件。提示:脚本(Script)是一种可以在Web服务器端或浏览器端运行的程序,目前比较流行的Web编程脚本语言有JavaScript和VBScript,并且一般采用Javascript作为客户端脚本语言,VBScript作为服务器端脚本语言。

4. JSP

1997—1998年,Sun公司相继推出了Servlet技术和JSP(JavaServer Pages)技术。这两者的组合(还可以加上JavaBean技术),让程序员可以使用Java语言开发Web应用程序。

JSP实际上是将Java程序片段和JSP标记嵌入HTML文档中,当客户端访问一个JSP网页时,将执行其中的程序片段,然后返回给客户端标准的HTML文档。与ASP不同的是:客户端每次访问ASP文件时,服务器都要对该文件解释执行一遍,再将生成的HTML代码发送给客户端。而在JSP中,当第1次请求JSP文件时,该文件会被编译成Servlet,再生成HTML文档发送给客户端,当以后再次访问该文件时,如果文件没有被修改,就直接执行已经编译生成的Servlet,然后生成HTML文档发送给客户端。由于以后每次都不需要重新编译,因此JSP在执行效率和安全性方面有明显优势。JSP的另一个优点是可以跨平台,缺点是运行环境及Java语言都比较复杂,导致学习难度大。

5. ASP.NET

2002年,Microsoft公司正式发布了.NET FrameWork和Visual Studio.NET,它引入了ASP.NET这种全新的Web开发技术。ASP.NET可以使用Visual Basic.NET、C#等编译型语言,支持Web窗体、.NET Server Control和ADO.NET等高级特性。ASP.NET最大的特点是程序与页面分离,也就是说它的程序代码可单独写在一个文件中,而不是嵌入网页代码中。ASP.NET需要运行在安装了.NET FrameWork的IIS服务器上。

总的来说,PHP和ASP属于轻量级的Web程序开发环境,只要安装Dreamweaver(简称DW)就可进行程序的编写。而ASP.NET和JSP属于重量级的开发平台,除了安装DW外,还必须安装Visual Studio或Eclipse等大型开发软件。

本书选择介绍PHP语言,主要基于以下原因。

① PHP简单易学。由于AppServ等集成环境的出现,配置PHP的Web服务器也是很简单的。因此,PHP很适合初学者学习,能够让初学者在短时间内领会到Web应用程序开发的思路。

② 几种语言的编程思想其实都是很相似的,例如,每种语言基本上都定义了一些服务器与浏览器之间交互信息的方法,只要熟练掌握其中一种,再去学习其他的语言就容易了。*1.1.4 动态网站的有关概念

在学习动态网站编程前,有必要明确URL、域名、HTTP和MIME这些概念。

1. URL

当用户使用浏览器访问网站时,通常都会在浏览器的地址栏中输入网站地址,这个地址就是统一资源定位符(URL)。URL信息会通过HTTP请求发送给服务器,服务器根据URL信息返回对应的网页文件代码给浏览器。

URL是Internet上任何资源的标准地址,每个网站上的每个网页(或其他文件)在Internet上都有一个唯一的URL地址,通过网页的URL,浏览器就能定位到目标网页或资源文件。

URL的一般格式为:“协议名://主机名[:端口号][/目录路径/文件名][#锚点名]”,图1-4所示是一个URL的示例。图1-4 URL的结构

URL协议名后必须接“://”,其他各项之间用“/”隔开,例如,图1-4中的URL表示信息被放在一台被称为www的服务器上,hynu.cn是一个已被注册的域名,cn表示中国。主机名和域名合称为主机头。web/201009/是服务器网站目录下的目录路径,而first.html是位于上述目录下的文件名,因此通过该URL我们可以访问到这个文件。

在URL中,常见的“协议”有http和ftp。(1)http:超文本传输协议,用于传送网页。例如:  http://bbs.runsky.com:8080/bbs/display.php?fd=3(2)ftp:文件传输协议,用于传送文件。例如:  ① ftp://219.216.128.15/  ② ftp://001.seaweb.cn/web

2. 域名

在URL中,主机名通常是域名或IP地址。最初,域名是为了方便人们记忆IP地址,使用户在URL中可以输入域名而不必输入难记的IP地址。但现在多个域名可对应一个IP地址(一台主机),即在一台主机上可架设多个网站,这些网站的存放方式称为“虚拟主机”,此时由于一个IP地址(一台主机)对应多个网站,就不能采用输入IP地址的方式访问网站,而只能在URL中输入域名。Web服务器为了区分用户请求的是这台主机上的哪个网站,通常必须为每个网站设置“主机头”来区分这些网站。

因此域名的作用有两个,一是将域名发送给DNS服务器解析得到域名对应的IP地址以进行连接,二是将域名信息发送给Web服务器,通过域名与Web服务器上设置的“主机头”进行匹配确认客户端请求的是哪个网站,如图1-5所示。若客户端没有发送域名信息给Web服务器,例如,直接输入IP,则Web服务器将打开服务器上的默认网站。图1-5 浏览器输入网址访问网站的过程

3. HTTP请求和响应的格式

HTTP是浏览器发送请求信息给服务器,服务器再传输超文本(或其他文档)到浏览器的传输协议。这就是我们在浏览器中看到的网页地址都是以“http://”开头的原因。它不仅能保证计算机正确快速地传输网页文档,还能确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP包含两个阶段:请求阶段和响应阶段。浏览器和Web服务器之间的每次HTTP通信(请求或者响应)都包含两部分:头部和主体。头部包含了与通信有关的信息;主体则包含了通信的数据,当然,前提是存在这样的数据。(1)HTTP请求阶段

HTTP请求的通用格式如下。  ① 首行: HTTP方法 URL中的域名部分 HTTP版本  ② 头部字段  ③ 空行  ④ 消息主体

以下是一个HTTP请求首行的示例:  GET / content.html HTTP/1.1

它表示使用GET方式向服务器请求content.html这个文档,使用的协议是HTTP 1.1版本。对HTTP方法来说,最常用的是GET和POST两种方法。GET方法用来请求服务器返回指定文档的内容;POST方法表示发送附加的数据并执行指定的文档,它最常见的应用是从浏览器向服务器发送表单数据,同时还发送一个请求执行服务器中的某个程序(动态页),这个程序将处理这些表单数据。

第二部分是头部字段,一个常用的头部请求字段为Accept字段,该字段用来指定浏览器可以接受哪些类型的文档,例如,Accept: text/html表示浏览器只可接受HTML文档。文档类型采用MIME类型来表示。如果浏览器可以接受多种格式的文档,那么可以指定多个Accept字段。

请求的头部之后必须有一个空行,该空行用于将请求的主体和头部分隔开来。使用了GET方法的请求没有请求主体。因此,这种情况下,空行是请求结束的标记。(2)HTTP响应阶段

HTTP响应的通用格式如下:  ① 状态行  ② 响应头部字段  ③ 空行  ④ 响应主体

状态行中包含了所用HTTP的版本号,此外还包括一个3位数表示的响应状态码和针对状态码的一个简短的文本解释。例如,大部分响应都是以下面的状态行开头的。  HTTP/1.1 200 OK

它表示响应使用的协议是HTTP 1.1,状态码是200,文本解释是OK。

其中,状态码200表示请求得到处理,没有发生任何错误,这是用户希望看到的。状态码404表示请求的文件未找到,状态码500表示服务器出现了错误,且不能完成请求。

状态行之后是响应头部字段,响应头部可能包含多行有关响应的信息,每条信息都对应一个字段。响应头部中必须使用的字段只有一个,即Content-type。例如:  Content-type: text/html, charset=UTF-8

它表示响应的内容是HTML文档,内容采用的编码方式是UTF-8。

响应头部之后必须有一个空行,这与请求头部是一致的。空行之后才是响应数据。在上例中,响应主体是一个HTML文件。

4. MIME

浏览器从服务器接收返回的文档时,必须确定这个文档属于哪种格式。如果不了解文档的格式,浏览器将无法正确显示该文档,因为不同的文档格式要求使用不同的解析工具,例如,服务器返回的是一个JPG图片格式的文档,而浏览器把它当成HTML文档去解析,则显示出来的将是乱码。通过多用途网际邮件扩充协议(Multipurpose Internet Mail Extensions,MIME),我们可以指定文档的格式。

MIME最初的目标是允许各种不同类型的文档都可以通过电子邮件发送。这些文档可能包含各种类型的文本、视频数据或者音频数据。由于Web也存在这方面的需求,因此,Web中也采用了MIME来指定所传递的文档类型。

Web服务器在一个将要发送到浏览器的文档头部附加了MIME的格式说明。当浏览器从Web服务器中接收到这个文档时,就根据其中包含的MIME格式说明来确定下一步的操作。例如,文档内容为文本,则MIME格式说明将通知浏览器文档的内容是文本,并指明具体的文本类型。MIME说明的格式如下所示:  类型/子类型

最常见的MIME类型为text(文本)、image(图片)和video(视频)。其中,最常用的文本子类型为plain、html和xml。最常用的图片子类型为gif和jpeg。服务器通过将文件的扩展名作为类型表中的键值来确定文档的类型。例如,扩展名.html意味着服务器应该在将文档发送给浏览器之前为文档附加MIME说明:text/html。1.2 网页的类型和工作原理1.2.1 静态网页和动态网页

在Internet发展初期,Web上的内容都是由静态网页组成的,Web开发就是编写一些简单的HTML页面,页面上包含一些文本、图片等信息资源,用户可以通过超链接浏览信息。采用静态网页的网站有很明显的局限性,如不能与用户进行交互,不能实时更新网页上的内容。因此像用户留言、发表评论等功能都无法实现,只能做一些简单的展示型网站。

后来静态网页开始向动态网页转变,这是Web技术经历的一次重大变革。随着动态网页的出现,用户能与网页进行交互,表现在除了能浏览网页内容外,还能改变网页内容(如发表评论)。此时用户既是网站内容的消费者(浏览者),又是网站内容的制造者。

1. 静态网页和动态网页的区别

根据Web服务器是否需要对网页中脚本代码进行解释(或编译)执行,网页可分为静态网页和动态网页。(1)静态网页是纯粹的HTML页面,网页的内容是固定的、不变的。用户每次访问静态网页时,其显示的内容都是一样的。(2)动态网页是指网页中的内容会根据用户请求的不同而发生变化的网页。由于每次请求的不同,同一网页可显示不同的内容,例如,图1-6中显示的两个网页实际上是同一个动态网页文件(product.php)。动态网页中可以变化的内容称为动态内容,它是由Web应用程序来实现的。图1-6 动态网页可根据请求的不同每次显示不同的内容

2. 静态网页的工作流程

用户在浏览静态网页时,Web服务器找到网页就直接把网页文件发送给客户端,服务器不会对网页作任何处理,如图1-7所示。静态网页在每次浏览时,内容都不会发生变化,网页一经编写完成,其显示效果就确定了。如果要改变静态网页的内容就必须修改网页的源代码再重新上传到服务器。图1-7 静态网页的工作流程1.2.2 为什么需要动态网页

静态网页在很多时候是无法满足Web应用需要的。举个例子,假设有个电子商务网站需要展示1000种商品,其中每个页面显示1种商品。如果用静态网页来做的话,那么需要制作1000个静态网页,工作量是非常大的。而且如果以后要修改这些网页的外观风格,就需要逐个网页进行修改,工作量也很大。

而如果使用动态网页来做,只需要制作1个页面,然后把1000种商品的信息存储在数据库中,页面根据浏览者的请求,调用数据库中的数据,即可用同一个网页显示不同商品的信息。要修改网页外观时也只需修改这一个动态页的外观即可,工作量大为减少。

由此可见,动态网页是页面中内容会根据具体情况发生变化的网页,同一个网页根据每次请求的不同,可以每次显示不同的内容。例如,一个新闻网站中,单击不同的链接可能都是链接到同一个动态网页,只是该网页能够每次显示不同的新闻。

动态网页技术还能实现诸如留言板、论坛、博客等各种交互功能,动态网页带来的好处是显而易见的。动态网页要显示不同的内容,往往需要数据库做支持,这也是动态网页的一个特点。从网页的源代码看,动态网页中含有服务器端代码,需要先由Web服务器对这些服务器端代码进行解释执行生成HTML代码后再发送给客户端。

可以从文件的扩展名判断一个网页是动态网页还是静态网页。一般来说,静态网页的文件扩展名是htm、html、shtml、xml等;动态网页的扩展名是php、asp、aspx、jsp等。例如,http://product.amazon.com/product.aspx?id=2046是一个动态网页,而http://ec.hynu.cn/g1.html是一个静态网页。提示:动态网页绝不是页面上含有动画的网页,即使在静态网页上有一些动画(如Flash或GIF动画)或视频,如果每次访问它时显示的内容是一样的,仍然属于静态网页。1.2.3 PHP动态网页的工作原理

PHP即“超文本预处理器(Hypertext Preprocessor)”的递归缩写,是一种服务器端的、跨平台的、开放源代码的多用途脚本语言,尤其适用于Web应用程序开发,并可以嵌入HTML中。它最早由拉斯马斯·勒德尔夫在1994年发明,而现在PHP的标准是由PHP Group和开放源代码社区维护的。PHP语言的语法混合了C、Java和Perl语言的特点,语法非常灵活。

PHP的特点在于跨平台且提供的函数非常丰富,支持广泛的数据库,执行速度快,模板化,能实现代码和页面分离。

目前PHP的主流版本有PHP 5.6和PHP 7.1。这两种版本的语法是相同的,只是PHP 7.1的运行速度比PHP 5.6快了30%,但PHP 7.1版本不再支持一些比较老的数据库访问方式,导致有些PHP应用程序无法在PHP 7.1版本上运行,从兼容性角度考虑,本书采用PHP 5.6作为程序的运行环境。

PHP主要用来编写Web应用程序,一个完整Web应用程序的代码包含在服务器端运行的代码和在浏览器中运行的代码(如HTML)。以PHP创建的Web应用程序为例,它的执行过程如图1-8所示。图1-8 PHP程序的执行过程

可以看出,PHP程序经过Web服务器时,Web服务器会对它进行解释执行,生成纯客户端的HTML代码再发送给浏览器。因此,保存在服务器网站目录中的PHP文件和浏览器接收到的PHP文件的内容一般是不同的,因此无法通过在浏览器中查看源代码的方式获取PHP程序的代码。

图1-8中的Web服务器主要是指一种软件,它具有解释执行PHP代码的功能,PHP的Web服务器软件一般是Apache。因此,要运行PHP程序,必须先安装Apache,这样才能对PHP程序进行解释执行。安装了Apache的计算机就成了一台Web服务器。

对比一下静态网页,Web服务器不会对它进行任何处理,直接找到客户端请求的HTML文件,发送给浏览器,其运行过程如图1-7所示。

因此,Web服务器的作用是:对于静态网页,Web服务器仅仅是定位到网站对应的网站目录,找到客户端请求的网页就发送给浏览器;而对于动态网页,Web服务器找到动态网页后要先对动态网页中的服务器端代码(如PHP)进行解释执行,生成只包含静态网页的代码再发送给浏览器。提示:不能通过双击文件直接用浏览器打开PHP文件,因为这样PHP代码没有经过Web服务器的处理。运行PHP文件的具体方法将在1.3.2节介绍。1.3 安装PHP的运行环境

要想使计算机能运行PHP程序,一般需要在计算机上安装能运行PHP的Web服务器软件——Apache。Apache有Windows、Linux等各种操作系统的版本,能使PHP运行于不同的操作系统平台上。

对于PHP的学习者来说,建议采用Windows+Apache+PHP+MySQL作为PHP的运行环境,下面介绍PHP的集成环境AppServ的安装。1.3.1 AppServ的安装

1. 为什么要安装AppServ

Apache其实只是一种通用的Web服务器,它本身并不能对PHP脚本进行解释执行。为了使Apache能解释执行PHP,还必须在Apache上安装PHP的解析器PHP。此外,由于开发Web应用程序通常都需要访问数据库,而MySQL是一种很适合与PHP搭配使用的数据库,因此,通常还需要安装MySQL。由于MySQL是一种完全通过命令行方式操作的数据库管理软件,对数据库的任何操作都只能在命令提示符下输入命令来完成,这很不友好,为了使MySQL能像Access那样支持图形界面化操作,还需要安装MySQL的图形界面操作程序——phpMyAdmin。

因此,配置PHP的运行环境一般需要安装以上4种软件。如果分别安装,不仅安装过程很麻烦,而且安装完之后还要进行大量的设置,使这几种软件能工作在一起。

为此,泰国的PHP爱好者制作了AppServ,AppServ实际上是这4种软件的集成安装包,包含Apache、PHP、MySQL、phpMyAdmin。只要安装AppServ,就可一次性地把PHP的运行环境全都安装和配置好,大大简化了PHP运行环境的安装和配置。

2. AppServ的安装过程

AppServ是一个免费软件,可以在百度上搜索并下载,本节以2.5.9版为例。AppServ的安装文件只有一个,双击该文件,就会弹出安装向导界面,单击“Next”按钮,会出现软件许可协议界面,单击“I Agree”按钮,将提示选择软件的安装位置(见图1-9),在这一步的文本框中可直接输入安装路径,建议安装在非系统盘,如“D:\AppServ”,并且安装路径中不能含有中文字符,否则会导致错误。图1-9 选择安装位置

单击“Next”按钮,选择需要安装的组件(见图1-10),因为这里需要安装AppServ包含的4种软件,所以,必须把4项全部勾选上。图1-10 选择安装组件

在下一步中,需要配置Apache服务器的有关信息(见图1-11),包括服务器名、管理员邮箱和HTTP端口号。其中,Server Name可设置为该服务器的域名,由于此处只是将Apache安装在本机上作为测试,因此可以任意输入一个名称。如果是将这台机器作为网络上真正的Web服务器,则应该输入一个真实的域名,以便网络上的其他主机都能通过该域名访问它。图1-11 Apache服务器信息的配置

在“Administrator's Email Address”中,如果填入一个E-mail地址,那么当Apache软件运行出现错误时会把错误信息发送到这个邮箱。

在“Apache HTTP Port”中,可以设置Apache服务器HTTP服务端口号,建议使用HTTP服务默认的80端口,如果填其他端口(如88),访问时就必须在域名后加上端口号,如http://localhost:88。提示:如果本机上还安装了IIS或Tomcat等其他的Web服务器,则应该将这些服务器的HTTP端口修改为非80端口,否则,会因为端口冲突,导致Apache服务器无法启动。

在下一步中,需要配置MySQL数据库的相关信息(见图1-12),包括超级用户root的密码,MySQL数据库中字符的编码方式等,本书中设置MySQL的root用户密码为“111”,对于字符编码方式,建议选择默认的“UTF-8 Unicode”,因为UTF-8编码是世界范围通用的编码方式,它可以保证在英文IE浏览器中也能正常显示中文。然后,把下面两项“Old Password Support”和“Enable InnoDB”勾选上,否则可能会导致MySQL服务器无法启动。图1-12 配置MySQL数据库服务器

最后单击“Install”按钮,就开始安装AppServ。安装完成后,默认会自动启动Apache服务器和MySQL数据库,如果计算机上安装有360安全卫士或金山卫士等杀毒软件,可能会提示这些程序正在加入系统服务,这时应该选择“允许”修改。提示:MySQL数据库服务器root用户的密码必须牢记,因为以后使用PHP连接MySQL数据库必须使用该密码。如果忘记,则只能重新安装AppServ。

如果计算机上安装有SQL Server、IIS等软件,应该先将这些服务停止,再开始安装AppServ。

3. 测试AppServ是否安装成功

在IE浏览器中输入http://localhost,如果能看到图1-13所示的网页,则表明AppServ安装基本成功。图1-13 AppServ的测试页

AppServ安装完成后,在AppServ安装目录下,应该包含4个子目录,如图1-14所示。其中,Apache2.2是Apache服务器软件的安装目录,MySQL是MySQL数据库软件的目录,php5是PHP的目录,而www是网站主目录,打开www目录,将看到图1-15所示的子目录。图1-14 AppServ安装目录下的子目录图1-15 www目录下的子目录

其中,index.php文件是网站的主页,输入http://localhost打开的AppServ测试页就是该文件的运行结果,如图1-13所示。可见,如果要替换Apache默认网站的主页,只要替换该文件即可。而phpMyAdmin目录是phpMyAdmin软件的安装目录。该软件是个基于B/S架构的软件,如果要访问phpMyAdmin,只要在图1-13中单击链接“phpMyAdmin Database Manager Version 2.10.2”,或直接输入网址http://localhost/phpMyAdmin,就会弹出图1-16所示的用户登录框。图1-16 phpMyAdmin的用户登录框

在其中输入正确的用户名和密码(这里用户名是root,密码是111),就会进入图1-17所示的phpMyAdmin界面。在这里可以用图形化的方式创建和管理数据库及表。图1-17 phpMyAdmin软件的操作界面提示:如果输入正确的用户名和密码后不能看到图1-17所示的phpMyAdmin界面并提示错误,那一般是MySQL数据库连接不上。此时,可以在Windows“运行”对话框中输入cmd,在命令行中输入mysql,如果mysql连接不正常则会显示错误信息。1.3.2 运行第1个PHP程序

1. 新建第1个PHP程序

PHP文件和HTML文件一样,也是一种纯文本文件,因此可以用记事本来创建和编辑,只要将其保存成后缀名为“.php”的文件就可以了。在“记事本”中输入图1-18中所示代码(注意代码区分大小写)。图1-18 在记事本中新建一个PHP文件

输入完成后,在记事本中选择菜单命令“文件”→“保存”,就会弹出图1-19所示的“另存为”对话框,这时首先应在“保存类型”中选择“所有文件”,再在文件名中输入1-1.php,并选择保存在“D:\AppServ\www”目录下,单击“保存”按钮即可新建一个PHP文件(1-1.php)。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载