第二讲 检索系统的搭建
目录
课前复习
- 回顾检索系统的基本结构和需要使用到的工具。
- 复习SQL语句,并尝试写出实现“找出所有李白写的诗歌”功能的SQL语句。
1. HTML
1.1 标记(Mark)
中国古代文书中,一般不加标点符号,而是通过语感、语气助词、语法结构等进行断句。如今,在现代汉语中,我们有一套完整的标点符号系统。在《中华人民共和国国家标准 标点符号用法》里给出了这样的定义:标点符号是辅助文字记录语言的符号,是书面语的有机组成部分,用来表示语句的停顿、语气以及标示某些成分(主要是词语)的特定性质和作用。
举个例子:
我们今天发了《古代汉语》这本教材。
这句话里用到了书名号《》
和句号。
,我们重点来看书名号。书名号在《中华人民共和国国家标准 标点符号用法》中的作用就是标示语段中出现的各种作品的名称。也就是说,如果想要告知读者某一个句子成分具有作品名称的含义,我们就可以分别在它的前后加上“《”“》”这样的标注,从而赋予它一个新的含义。
这种在句子中某一成分的前后两端加上成对的符号或者标签的标记形式,是现代汉语标点符号的特点之一,同时由于这种标记的简洁性和简易性,它还被用于其他的标记场景。
1.2 从标记的角度理解
我们在一句话中可以通过书名号来赋予一个句子成分以新的含义,那么我们是否能用同样的方法来实现在纯文本文件中对格式进行控制呢?
对文本格式的控制包括加粗,斜体,字号,字体等等,我们有很多需要控制的对象,但我们并没有也不方便找到很多的符号与之一一对应,于是我们在这种前后两端加上成对的符号或者标签的标记形式的基础上进一步升级,我们用单词或字母来进行标记,并把这些单词或字母放在尖括号里,分别放在所要标记对象的前后两端,从而实现标记功能。这样的成对儿的形如<XX></XX>
的标记形式,我们可以叫它标签。标签就是HTML的核心结构。
那么什么是HTML呢?HTML是Hyper Text Markup Language的缩写,即超文本标记语言,它是一种标识性的语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
我们根据HTML的用途和特点,可以从语言学角度给出一个新的定义:HTML是辅助超文本呈现的符号系统,通过一系列的标签来组织文本、图片、声音等信息内容。
1.3 HTML简单实践
1.3.1 创建一个HTML文件
在某个文件夹下,创建一个my1.html
的文件。
1.3.2 写入语句
写入以下语句,并使用标签对其格式进行修改。
Hello, I am a <strong>page</strong>.
1.3.3 尝试运行
本次课程并不要求掌握HTML语言,只需理解HTML的结构形式和特点即可。
2. HTML和PHP
2.1 PHP是什么
PHP即Hypertext Preprocessor,即“超文本预处理器”,是一种在服务器端执行的脚本语言。
首先我们理解一下什么叫超文本预处理器。这里的超文本说的是谁呢?其实说的就是网页,网页不就是用超文本标记语言组织成的含有文本、图片、声音等的文本形式吗?那么预处理器又是什么呢?预处理器是在真正的编译开始之前由编译器调用的独立程序。说得复杂,其实简单而言,就是在程序运行前先运行的那个程序。具体到这里是什么意思的?超文本预处理器,就是在超文本之前,进行运行的程序。在超文本之前运行无非就是生成超文本,或做一些别的事情。我们重点需要关注的就是PHP生成超文本页面,即PHP生成HTML语句的作用。
谈到这里,大家应该已经明白,PHP就是用来生成HTML的一种语言。
2.2 PHP和HTML的关系
单单有HTML不够吗?为何还要有PHP?
单单有HTML是不够的,HTML是由开发者事先写好的,写好之后就不会改变的,即它是静态的。但是在很多场景静态的页面并不符合要求,但我们也不能事先创建好所有可能会用到的页面,例如检索系统,所以我们需要有一个语言来根据我们制定的一些规则动态地生成HTML。
所以PHP和HTML关系就是PHP生成HTML。
当理解了这个问题之后,大概就不会问出在PHP中如何插入图片的问题了叭?
3. 检索系统的搭建
3.1 检索系统的结构
检索系统的结构讲解见第一讲 检索系统与数据库编程
3.2 检索系统的模板
检索框页面home.html
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>唐诗检索系统</title>
</head>
<body>
<form action="result.php" method="GET">
<div>请输入需要检索的关键词</div>
<input type="text" name="searchword">
<input type="submit" value="检索">
</form>
</body>
</html>
检索结果页面result.php
<?php
header("Content-Type:text/html;charset=utf-8;");
$text = $_GET['searchword'];
$conn = mysql_connect("127.0.0.1","root","");
// tang_poem是数据库名
$condb = mysql_select_db("tang_poem") or die("无法连接服务器");
mysql_query("set names'utf8'");
// 检索使用的SQL语句
$sql = "SELECT * from tang_poem WHERE poem like '%".$text."%'";
$query = mysql_query($sql,$conn);
while($row = mysql_fetch_array($query)){
// 需要输出的字段
echo $row['title']." ".$row['author']." ".$row['poem']."<br><br>";
}
?>
3.3 模板的使用
模板的使用仅需三步
第一步 修改数据库名
找到PHP语句,把tang_poem
修改成你所检索的数据库的名称
$condb = mysql_select_db("tang_poem") or die("无法连接服务器");
第二步 修改SQL语句
找到SQL语句,将其修改成满足所需功能的形式
$sql = "SELECT * from tang_poem WHERE poem like '%".$text."%'";
注意这里的
tang_poem
是数据表名称。
第三步 修改显示的字段
找到PHP语句,修改结果页面需要显示的字段内容
echo $row['title']." ".$row['author']." ".$row['poem']."<br><br>";
其中:
 中&是一个特殊的符号,nbsp是Non-breaking Space的缩写,表示不间断空格。
是一个HTML标签,其中的br是break的简称,表示换行。
文件保存时候,打开浏览器即可运行。
注意:home.html语句里
<form action="result.php" method="GET">
其中的result.php
即结果页面的PHP文件名,若结果文件命名更改,此处也要同步修改,否则无法传输数据。
参考文献:
中华人民共和国国家标准 标点符号用法 2011
声明
本讲义仅用于文科教学,讲解深度较浅。为了便于文科生理解,一些举例可能和计算机专业领域有些微出入,还请各位大咖多多包涵!
本人资历尚浅,欢迎各位博主批评指正!