php解析文本文件呈现在表格上

name.txt如下

1 | 朱芳 | 18 | b.unyrl@tpwpqt.st | http://XEP.VC
2 | 康丽 | 22 | e.ifmc@fyvutpzio.pro | http://WSURR.PH
3 | 沈平 | 34 | m.vvnjhv@npiqo.tk | http://BGEGFBTEP.KH
4 | 吴平 | 19 | v.rjlo@ljjuit.sc | http://FOQMVET.ST
5 | 邵涛 | 20 | k.pmemrobuq@skt.name | http://JOQQ.TM
6 | 廖磊 | 14 | y.xoxbk@vgdsctz.mz | http://XGDWPM.NET
7 | 文敏 | 12 | o.fwmvfirdm@yfw.mx | http://MUPT.SL
8 | 罗平 | 32 | s.sxohwsf@bpcvf.lk | http://ADEBOQ.BN
9 | 林芳 | 18 | p.vozfcy@ntti.info | http://NQXWELT.LC
10 | 黎超 | 39 | q.decxs@wzotsllfj.cn | http://RFTTUKOK.RW

分析:

最终目标将.txt里面的内容呈现在表格中

第一步:读取文件内容------------------->包含文本内容的字符串数据

第二步:解析文件中的内容------------->得到数组

第三步通过混编的方式将数据呈现在表格

代码:

​
<?php 
//1.读取文件内容
$contents = file_get_contents('names.txt');

//2.按照一定的规则解析
//2.1 按照换行拆分,注意这里要用双引号,如果为单引号会将'\n'解析为转义字符
  $lines =explode("\n",$contents);
  var_dump($lines);   //做完一步先小测试一下,看看是否有数据
//2.2 还要将上面得到的按竖线拆分
  foreach ($lines as $item) {
  	//因为最后一行是空格行,要处理空格行
  	if ($item=="") continue;

   // 1 | 朱芳 | 18 | b.unyrl@tpwpqt.st | http://XEP.VC
   // |是我们不需要的,还要按竖线拆分
  	$cols =explode('|', $item);
  	$data[]=$cols;//将每次得到的存放到一个数组中
  }
?>

<!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): ?>  //第一层遍历上面的$data数组
			<tr>
				<?php foreach ($line as $col): ?>//第二层遍历$data数组里面的数组
				<?php $col=trim($col); ?>   //由于得到的每个列,前后都有空格,先处理掉空格
				<?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 ?>	
				<?php endforeach ?>	
			</tr>
			 <?php endforeach ?>
	    </tbody>
	</table>
</body>
</html>


​

 

结果如图:

posted @ 2018-10-25 18:56  mysunshine_SZZ  阅读(429)  评论(0编辑  收藏  举报