PHP案例学习
一.案例的要求
将如下的文本文档用PHP写到网页上,具体页面效果见下图。
文本文档:( 文档名称 names.txt )
页面效果:( 要求点击蓝色链接会跳转链接 )
二.完成案例的方法
思路:
1.首先将 txt 文本文件里面的内容读取到一个字符串里面,再对字符串进行处理
2.对字符串进行拆分,拆成一个一个的小元素,再依次进行输出
详细步骤:
1.读取文件内容
$text = file_get_contents('names.txt');
把文件内容存储到 $text 变量里面
2.将文本按行进行拆分,定义一个数组接收所有元素
$lines = explode("\n", $text);//根据换行拆分文本
把一行行的元素储存到 $lines 里面
3.再拆分行元素,定义一个二维数组接收拆分结果
foreach ($lines as $keys) {
if (!$keys) continue;//这里是处理最后一行的空行
$cols = explode('|', $item);//根据|拆分文本
$data[] = $cols;
}
4.HTML构造网页结构
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>全部人员信息表</title>
</head>
<body>
<h1>全部人员信息表</h1>
<table>
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
<th>邮箱</th>
<th>网址</th>
</tr>
</thead>
<tbody>//里面要用PHP
<tr>
<td></td>
</tr>
</tbody>
</table>
</body>
</html>
5.遍历 $data 里面的每个数组元素,每个数组元素是一行,写在 tbody 里面
<?php foreach ($data as $line): ?>
6.遍历 $line 里面的每一个元素,每个元素是一行中的每个板块,写在 tr 里面
<?php foreach ($line as $clo): ?>
7.对 $clo 中每个元素进行处理,如需要去掉空格
<?php $col = trim($clo); ?>
8.判断元素是不是一个网址,若是网址,则需要改成小写字母并创建链接,并把链接去掉 http:// ,不是网址,则原样输出
<?php if (strpos($col, 'http://') === 0): ?>
<td><a href="<?php echo strtolower($col); ?>"><?php echo substr($col, 7); ?></a></td>
<?php else: ?>
<td><?php echo $col; ?></td>
<?php endif ?>
9.整体代码如下:
<?php
$text=file_get_contents('names.txt');
$lines=explode("\n",$text);
foreach($lines as $keys){
if(!$keys) continue;
$clos=explode('|',$keys);
$data[]=$clos;
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>练习</title>
</head>
<body>
<h1>全部人员信息表</h1>
<table>
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
<th>邮箱</th>
<th>网址</th>
</tr>
</thead>
<tbody>
<?php foreach($data as $line): ?>
<tr>
<?php foreach ($line as $clo): ?>
<?php $clo=trim($clo); ?>
<?php if(strpos($clo,'http://')===0) : ?>
<td><a href="<?php echo strtolower($clo); ?>"><?php echo substr($clo,7) ;?></a></td>
<?php else : ?>
<td><?php echo $clo; ?></td>
<?php endif; ?>
<?php endforeach; ?>
</tr>
<?php endforeach;?>
</tbody>
</table>
</body>
</html>
三.学到的tips
1.首先是学到的函数
file_get_contents(‘文件名称’) | 读取外部文件的内容 |
---|---|
explode(“分割的标志”/‘分割的标志’,要分割的变量) | 把字符串按照规定内容切开 |
trim(待处理的变量) | 去掉字符串里面的空格 |
strtolower (待处理的变量) | 把大写字母转为小写字母 |
substring(待处理的变量,切割掉前几位数字) | 切掉字符串前多少位的元素 |
2.注意
1.explode分割如果有 \n 等特殊转义符号,注意要用双引号,因为单引号不能识别特殊转义符号
2.写遍历的位置,如案例,要遍历每一行,就把遍历代码写到行元素 tr 上面,遍历一行中的各个元素,就把遍历代码写到行内元素 td 上面。同时要注意结束遍历 endXX 的位置。
写在最后
慢也好,步子小也好,只要在往前走就好了~
和小舒一起努力啊~