php 循环抓取网页内容(这节课开始学习如何使用PHP结合HTML网页来实现?)

优采云 发布时间: 2022-04-18 18:11

  php 循环抓取网页内容(这节课开始学习如何使用PHP结合HTML网页来实现?)

  前两节课都是以前用 PHP 编程语言编写和重新实现的程序。

  本课开始学习如何使用PHP结合HTML页面来实现特定的动态数据页面。

  学歌打算做一个有学生成绩管理功能的网页,首先要做一个列表查询页面。

  在查询页面,可以输入一些查询条件,如学生姓名或学科信息。点击查询按钮后,下方显示对应的查询结果,查询结果以表格的形式展示。

  PHP 如何嵌入 HTML

  前几课是纯PHP代码,然后通过PHP命令执行PHP文件代码来运行PHP代码。

  在本章的第一课中,您实际上已经学会了如何将 PHP 代码嵌入到 HTML 页面中,所以让我们回顾一下:

  可以看出,虽然文件名最终保存为helloworld.php,但其本质还是一个html规范格式的文件,因为这个文件的内容最终显示在浏览器中,所以本质上还是一个html规范文件.

  PHP代码的作用只是通过动态编程语言生成需要的数据或显示格式。

  可以理解为PHP代码运行在服务器端,运行后的文件内容为HTML内容。这样做的好处不言而喻,因为每个客户端浏览器都可以根据需要生成完全不同的 网站 内容。

  上面的代码,其实也可以完全用PHP代码实现:

  运行此代码的结果与运行上述代码的结果完全相同。

  也就是说,在PHP代码中,不在这组开始和结束标记中的内容实际上是默认返回给浏览器的,相当于使用echo输出。这也是 PHP 的默认代码规范。

  除了 echo 函数外,还使用了其他标准输出函数,类似于 echo 将输出内容返回给浏览器。比如print函数、print_r函数、var_dump函数等等。但是,如果输出内容不符合 html 规范,则可能无法在浏览器中按预期显示。

  编写列表查询页面

  创建 2 个文件 studentlist.php 文件和 student.css 文件。

  参考前面的 index.html 和 index.css 样式编写html文件和显示样式。

  首先将div分为上下3个区域,顶部显示一个标题“*敏*感*词*查询”,然后下面的两个div分别显示查询条件和查询按钮。

  查询条件如下:姓名(文本输入)/性别(单选)/主题(多选)/分数段(下拉框选择)。

  以下区域显示查询列表的结果,使用表格显示。第一行是标题,显示以下数据:

  ID/姓名/性别/主题/分数。

  修改 studentlist.php 文件:

  

  修改 student.css 文件:

  

  将这2个文件部署到本地服务器对应目录下,然后启动本地web服务程序,然后通过浏览器访问这个php网页:

  

  然后写一个表,在下一行的 td 中显示查询列表的结果。

  显示以下数据:ID/姓名/性别/主题/分数。

  第一行是标题,第二行是数据。表头和数据的显示样式可以不同以显示差异。

  修改 studentlist.php 文件:

  

  修改student.css文件,添加如下代码:

  

  

  刷新页面:

  

  可以看到网页上显示了一个表格,内容是学生成绩的查询结果。

  将数据行复制到多行,使奇数行和偶数行显示不同的背景色,看起来更美观。

  修改 studentlist.php 文件:

  

  修改student.css文件,添加样式tdb:

  

  刷新页面:

  

  可以看到表格中显示了多行数据,并且各行明显分开。

  使用 PHP 代码循环遍历表的数据

  通过编写静态html内容,即可完成显示样式的编码。

  然后在这里修改多行显示内容,用PHP代码动态生成。

  首先,删除刚刚添加的4行数据,只留下一行数据。

  然后,在数据行前后添加PHP代码,并将这行数据放入一个for循环,即让这行数据重复显示5次。

  修改 studentlist.php 文件:

  

  刷新页面:

  

  如您所见,页面显示了 5 行完全相同的数据。这就是 PHP 代码的力量。

  如果要将5行变成100行,只需要修改一个数字即可。而如果是纯HTML代码,如果要重复100行的话,复制粘贴会耗费大量时间。

  如果希望奇数行和偶数行的显示不同,可以这样修改:

  首先设置一个变量,用于显示样式是tda还是tdb,命名为tds;

  然后根据当前行是偶数行,将tds的值赋给一个tdb字符串;

  然后在需要显示样式的地方输出这个变量。在这个循环中,当变量$i发生变化时,模2的结果会是0或者1,也就是奇数或者偶数,所以变量tds的值会变成tda或者tdb,最终输出的结果会不一样。.

  修改 studentlist.php 文件:

  

  刷新页面:

  

  如果我想以不同的方式显示这5行的ID和名称怎么办?

  一个简单的方法是修改显示的内容以跟随当前循环变量生成:

  修改studentlist.php文件,调整代码的分支位置:

  

  刷新页面:

  

  可以看到,每一行的 ID 和名称都是不同的。

  当然,在实际项目中,一般不采用这种方式。一般来说,必须将整个数据结果集返回到一起显示的页面,然后通过访问数据结果集嵌入到HTML表格中。显示。

  一般的方式是使用二维数组变量来保存数据结果集。

  添加一个变量$alldatas,那么内容就是二维数据,外层是每一行的含义,内层用key和value来表示不同的字段数据。

  然后显示循环内部,通过访问这个二维数组的一个key得到对应的数据,通过echo输出到网页内容中。

  修改 studentlist.php 文件:

  

  刷新页面:

  

  可以看到数据显示了5行,每行的名称都是根据数组变量中的值来显示的。这样,可以很容易地显示背景数据。

  但是有个不正确的地方,就是数据行数的长度是5,代码还是用了for循环5次,加上数据的行数长度不是5,那么for 循环在这里不正确。应该改成foreach遍历二维数组变量,这样就可以完全根据变量中存储的数据显示行数和内容。

  修改循环方式和变量显示,修改其他字段以这种方式显示。

  修改 studentlist.php 文件:

  

  刷新页面:

  

  如您所见,所有显示的内容都取决于存储在数组变量中的值。只要修改了这个变量中存储的数据,网页就会显示不同的内容。

  这就是动态网站的本质。

  编写单个查询项和查询按钮

  接下来,编写上面的查询条件和查询按钮。

  3-4节大致介绍了各种输入项的写法,我们来回顾一下:

  可以在网页上显示文本输入框。

  单选按钮可以显示在网页上。

  可以在网页上显示多选按钮。

  一个按钮可以显示在网页上。

  使用选择元素显示一个下拉框。

  上面的代码可以在网页中显示一个下拉框选项,里面有2个选择项。

  通过上述方式,在上方区域添加如下查询条件和查询按钮。

  姓名(文字输入)/性别(单选)/主题(多选)/小数段(下拉框选择)/查询按钮。

  首先,让我们规划一下这 5 个项目是如何放置在页面上的。

  我打算把查询按钮放在最右边,然后把左边分成上下2行,上面分成3列,分别显示姓名、性别和分数段;

  因为下面一行是选择题,要求的长度比较长,所以下面一行占了3列的宽度,正好利用表格的合并单元格属性来实现。

  首先,写出表格每个tr和td的分布,显示边框,验证排版是否正确:

  修改 studentlist.php 文件:

  

  刷新页面查看效果:

  

  然后,编写所有查询条件和查询按钮:

  修改 studentlist.php 文件:

  

  修改 student.css 文件:

  

  刷新页面查看效果:

  

  可以看出,查询网页已经基本形成,接下来就是实现点击查询按钮后的功能,即根据输入的不同条件,返回不同的查询数据结果。

  特别说明

  这堂课的内容很关键,是写动态网站的核心入门教程。由于本课的内容使用了很多之前课程的相关内容,如果你是第一次碰巧看到这个文章,可能有很多不明白的地方,所以你可能需要看雪歌之前写的。文章,建议从0001类开始,这样前后有连贯性,然后会有更好的理解。返回搜狐,查看更多

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线