1。用PHP读取TXT内容,然后按10行分页,该怎么实现呢?
2。如果TXT文本每一行里的内容是按TAB分隔或者空格分隔开的,该怎么进行拆分呢?
<?php
$str= file_get_contents("names.txt");//将文件中的内容读成字符串
$str1=explode("\n",$str);//按换行进行拆分//单引号是转义字符,所以必须使用双引号
//var_dump($str1);//通过这种方式可以输出详细的信息
foreach($str1 as $value){
if($value=="")continue; //最后一行是空格,当找出最后一行的时候直接跳过,不进行下面的操作
//1 | 朱芳 | 18 | [email]b.unyrl@tpwpqt.st[/email] | http://XEP.VC
//此时对此一组数据进行拆分
$cols=explode('|',$value);//按竖线进行拆分
//1 朱芳 18 [email]b.unyrl@tpwpqt.st[/email] http://XEP.VC
//将这一组数据存进数组里
$data[]=$cols; //将每次得到的存放在一个数组中
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>全部人员信息表</title>
<link rel="stylesheet" media="all">
<link rel="stylesheet" media="all">
</head>
<body>
<h1>全部人员信息表</h1>
<table class="layui-table">
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
<th>邮箱</th>
<th>网址</th>
</tr>
</thead>
<tbody>
<!-- 第一层遍历$data数组 -->
<?php foreach($data as $str2):?>
<tr>
<!-- 第二层是遍历$data数组中的数组 -->
<?php foreach($str2 as $col):?>
<!-- 处理掉每个列前后的空格 -->
<?php $col=trim($col);?>
<!-- 单独处理最后一列,找出最后一列,用前缀 -->
<?php if(strpos($col,'http://')===0):?>
<!-- 大写转小写 -->
<?php $col1= strtolower($col);?>
<td><a href="$col1"><?php echo substr($col1,7);?></a></td>
<?php else: ?>
<td><?php echo $col; ?></td>
<?php endif ?>
<?php endforeach ?>
</tr>
<?php endforeach ?>
</tbody>
</table>
</body>
</html>
文本内容:
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
11 | 于明 | 37 | n.oqxpry@jnc.cl | http://WPEEJDSG.MX
12 | 沈敏 | 25 | h.vyucoiqmnk@itbs.gy | http://PYDWDS.FM
13 | 唐霞 | 34 | p.iwqd@dqqiwqmtjm.kp | http://SKDLMD.DZ
14 | 张芳 | 34 | o.ufprjagx@ucmluvh.cm | http://GUVCWT.AERO
15 | 杨勇 | 40 | m.cetvzsugi@hntqvwjt.lv | http://NGRNYH.DJ
16 | 汪静 | 31 | u.tpry@xgoolb.lb | http://ONTW.PW
17 | 曾丽 | 27 | t.tmlpzccdm@dtksokhzlg.ci | http://EUCECSWSH.MY
18 | 余娜 | 15 | u.ymcbls@xgvidnnw.gp | http://OARGNEYD.CV
19 | 史秀兰 | 33 | k.nlgou@anokn.kg | http://MRGMDVLF.MW
20 | 唐磊 | 17 | d.ezmeqs@rvndkg.sa | http://ZWAV.ID
你写的逻辑也能用,不过,结果化的数据,存入数据库里不是方便的多么?哪怕是 sqlite,也会在业务逻辑上把这个内容获取的活丢出去啊.
另外, 如果你就是打算用文件来处理,不建议使用 file_get_contents 来一次性把文件读入,如果文件很大,读入一次,分割一次,都会导致你使用的内存暴涨,而且你的这个文件结构,并不是说必须读入全部文件才能解析结构,完全可以读入一行处理一行啊.
那么,请你看下 fgets 或者 stream-get-line 这两个函数.