PHP程序设计
上QQ阅读APP看书,第一时间看更新

1.2 网站开发中常用概念介绍

1.万维网

万维网(WWW,World Wide Web),可以简称为Web、3W等。它是存储在lnternet(因特网)中数量巨大的文档的集合。这些文档彼此关联,内含文本、图形、视频、音频等,通过 HTML把这些信息组织在一起,称为超文本,再利用超级链接从一个站点跳到其他站点,使信息获取变得更加便利。

2.统一资源定位符

统一资源定位符(URL,Uniform Resource Locator)是一种地址,指定协议(如HTTP或FTP)及对象、文档、WWW网页或其他目标在lnternet或lntranet(内部网)上的位置。

正如每家每户有一个门牌地址,每个网页也有一个URL。在浏览器的地址框中输入一个URL或单击一个超级链接时,就确定了要浏览的地址。

URL有以下常见形式。

ftp://10.206.0.6
https://www.ptpress.com.cn

3.超文本传输协议

lnternet的基本协议是TCP/lP,在TCP/lP模型最上层的是应用层,它包含所有高层协议。高层协议有文件传输协议(FTP)、电子邮件传输协议(SMTP)和超文本传输协议(HTTP)等。

HTTP是用于从WWW服务器传输超文本到本地浏览器的传送协议,它保证计算机正确、快速地在网络上传输超文本文档。HTTP即在lnternet上传输网页的协议,可以屏蔽传输的细节,对用户是透明的,网页编写者只需要将精力集中在网页设计与制作上就可以了。

4.静态网页与动态网页

静态网页就是纯粹的HTML页面,网页的内容是固定的、不变的。网页一经编写完成,显示效果就确定了。

动态网页是内容随具体情况变化的网页,它一般随网页的输入参数和数据库中内容的变化而变化。

如果要实现以下操作:在某个用户登录网页后,网页显示“你好,用户”,即张三登录后可以看到网页显示“你好,张三”,而李四登录后见到的内容是“你好,李四”,则需要做两个静态网页,但如果有1万个用户或10万个用户,显然不可能提前做好那么多的页面,这就需要应用动态网页技术来实现这样的功能。

常用的动态网页技术有JSP(Java服务器页面)、ASP(动态服务器页面)、PHP(超文本预处理器)、CGl(公共网关接口)等。我们可以从文件的扩展名来看一个网页文件是动态网页还是静态网页。静态网页的URL后缀是htm、html、shtml、xml等;动态网页的URL后缀是asp、aspx、jsp、php、perl、cgi等。

5.网站前台和后台

网站开发的前台和后台有两种解释,第一种解释是从开发网站分工角度来划分的,前台负责完成网站美工、布局设计、Ul元素设计等;后台负责业务逻辑处理及对数据库的操作。第二种解释是从用户角度来划分的,前台指的是网站的普通用户可见的功能和界面;后台指的是后台管理员对数据的管理功能。本书提到的网站前台和后台按照第二种解释来理解。

6.请求

请求是由用户发起的,可以通过浏览器地址栏的形式发起,也可以通过单击超链接的方式发起,还可以通过提交表单的方式发起。在网页中请求的方式有两种,一种是get方式,另一种是post方式。get方式提交的请求数据会附加在浏览器地址栏中,比如搜索功能、收藏功能,购物网站中常用此方式;post 方式的数据以请求包的形式发送,当表单里有密码(登录、注册)、表单提交的数据量特别大(比如发表的文章),具有文件上传功能时,就必须使用post方式。

7.字符集和字符编码

在各个国家和地区所制定的不同的ANSl编码(各种外文字符延伸编码方式)标准中,都只规定了各自语言所需的“字符”。比如,汉字标准(《信息交换用汉字编码字符集》)中没有规定韩文字符怎样存储。这些ANSl编码标准所规定的内容包含如下两层含义。

其一,使用哪些字符,即哪些汉字、字母和符号会被收入标准中,所包含“字符”的集合叫作“字符集”。

其二,规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定叫作“编码”。

各个国家和地区在制定编码标准的时候,“字符集”和“编码”一般都是同时制定的。因此,平常我们所说的“字符集”,比如GB2312、GBK、JlS等,除了有“字符的集合”这层含义外,还包含了“编码”的含义。

“UNlCODE字符集”包含了各种语言中使用到的所有“字符”。用来给UNlCODE字符集编码的标准有很多种,比如UTF-8、UTF-7、UTF-16、UnicodeLittle、UnicodeBig等。实际上,没有必要去深究每一种编码具体把某一个字符编码成了哪几个字节,只需要知道“编码”的概念就是把“字符”转化成“字节”就可以了。

在使用PHP编写网页的过程中,遇到乱码问题时可以从如下几个方面入手解决。

(1)HTML页面转UTF-8编码问题。

在head标签后、title标签前加入一行代码

<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />

HTML文件编码问题。

单击编辑器的菜单:“文件”→“另存为”,可以看到当前文件的编码,确保文件编码为 UTF-8,如果是ANSl,则需要将编码改成UTF-8。

(2)PHP页面转UTF-8编码问题

在php代码开始处加入一行代码。

header("Content-Type: text/html;charset=utf-8");

PHP文件编码问题。

单击编辑器的菜单:“文件”→“另存为”,可以看到当前文件的编码,确保文件编码为 UTF-8,如果是ANSl,则需要将编码改成UTF-8。

(3)MySQL数据库使用UTF-8编码的问题

在使用phpmyadmin创建数据库时,请将“整理”设置为“utf8_general_ci”,或执行语句。

CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

在创建数据表时,如果该字段存放中文,则需要将“整理”设置为 “utf8_general_ci”,如果该字段存放英文或数字,则默认就可以了。

(4)用PHP读写数据库

在连接数据库之后:$connection = mysql_connect($host_name, $host_user, $host_pass);加入一行代码,即可以正常地读写MySQL数据库。

mysql_query("set names 'utf8'");