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> ​

结果如图:

php解析文本文件呈现在表格上的更多相关文章

  1. jquery通过AJAX从后台获取信息并显示在表格上的类

    前一阵我写了:<jquery通过AJAX从后台获取信息并显示在表格上,并支持行选中.>现在,我把他们处理了一下,不需要每次写代码了: 具体代码如下: //获取数据并显示数据表格 funct ...

  2. jquery通过AJAX从后台获取信息并显示在表格上,并支持行选中

    不想用Easyui的样式,但是想要他的表格功能,本来一开始是要到网上找相关插件的,但是没找到就开始自己写,没想到这么简单. 后台代码:(这个不重要) public ActionResult GetDi ...

  3. 使用PowerShell比较本地文本文件与Web上的文本文件是否相同

    使用PowerShell比较本地文本文件是否相同通常有两种方式:1.通过Get-FileHash这个命令,比较两个文件的哈希是否相同:2.通过Compare-Object这个命令,逐行比较两个文件的内 ...

  4. java解析导入excel表格转为实体类javabean,根据实体类中的中文名称

    最近公司需求解析excel,一开始使用poi做的挺好的,后来直接上了几十万条数据的excel文件,内存直接溢出了,网上查到apache poi还提供了专门处理海量数据的方法,使用sax解析,果然用了内 ...

  5. 简单Excel表格上传下载,POI

    一.废话 Excel表格是office软件中的一员,几乎是使用次数最多的办公软件.所以在java进行企业级应用开发的时候经常会用到对应的上传下载便利办公. 目前,比较常用的实现Java导入.导出Exc ...

  6. Java按位置解析文本文件(使用Swing选择文件)

    工作中遇到这样的一个需求,按位置解析一些文本文件,它们由头部.详情.尾部组成,并且每一行的长度可能不一样,每一行代表的意思也可能不一样,但是每一行各个位置代表的含义已经确定了. 例如有下面这样一段文本 ...

  7. 编写简单的辅助脚本来在 Google 表格上记账

    我的第二份工作入职在即,而这一次则真的是完全跑到了一个陌生的城市了.租房,购置相关用品,还尚未工作钱就花掉一堆.尽管我个人之前一直都没有过记账的习惯,但为了让自己能够搞清楚自己的钱都花在哪里了,于是还 ...

  8. 如何解析本地和线上XML文件获取相应的内容

    一.使用Dom解析本地XML 1.本地XML文件为:test.xml <?xml version="1.0" encoding="UTF-8"?> ...

  9. 解析文本文件 "r" 与 "rb" 模式的区别(Python)

    r,rb 那么在读文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r':默认值,表示从文件读取数据.'b':表示要读写二进制数据 2.读文件 进行读文件操作时,直到读到文档结束符(E ...

随机推荐

  1. How to execute a Stored Procedure with Entity Framework Code First

    Recently I worked on a project, which I started as code first and then I forced to switch to Databas ...

  2. Atcoder Beginner Contest 118 D-Match Matching(完全背包)

    题目链接 题意就是给N根火柴,M个数(M只能是1到9,对应的数字也只能是1到9),只能用这M个出现过的数(但每个数可以随便用多少个,只要火柴够)来拼出一个数字(拼出1,2,3,4,5,6,7,8,9分 ...

  3. E - Just a Hook HDU - 1698 线段树区间修改区间和模版题

    题意  给出一段初始化全为1的区间  后面可以一段一段更改成 1 或 2 或3 问最后整段区间的和是多少 思路:标准线段树区间和模版题 #include<cstdio> #include& ...

  4. Android大学课件SQLite3 数据库操作

    一.数据库介绍 SQLite3:当有大量相似结构的数据需要存储的时候 . 其实SQLite3 就是一个文件,类似之前学过的MySQL SqlServer等. 二.SQLiteOpenHelper 是一 ...

  5. Heron and His Triangle HDU - 6222(pell 大数)

    ---恢复内容开始--- Heron and His Triangle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/2 ...

  6. King of Destruction HDU - 3002 && HDU - 3691(全局最小割)

    求无向图的最小割 有没有源点都一样,不影响 #include <iostream> #include <cstdio> #include <sstream> #in ...

  7. Java 强制类型转换(类转换注意事项)

    将一个类型强制转换成另一个类型的过程被称为类型转换.例如: double x =3.14; int y = (int)x; 将表达式x的值转换成整数类型,舍弃小数部分. 有时候也可能是类的对象引用的转 ...

  8. html图像、绝对路径和相对路径,链接

    html图像 <img>标签可以在网页上插入一张图片,它是独立使用的标签,通过"src"属性定义图片的地址,通过"alt"属性定义图片加载失败时显示 ...

  9. [BOI2007]Mokia 摩基亚(CDQ分治)

    upd:\((x1,y1)(x2,y2)\)表示以\((x1,y1)\)为左上端点 \((x2,y2)\)为右下端点的矩形 本来以为是一道二位树状数组的模板,但是看数据范围之后就放弃了,边界既然到了2 ...

  10. Mybatis中org.apache.ibatis.binding.BindingException错误问题总结

    1. Mybatis出现多个参数,但是多个参数中没有使用@Param注解进行修饰 2. Xml文件中字段名和PO绑定时候,字段写错了 3.XML中<foreach/>标签中的colleac ...