分类
PHP

PHP练手案例——将文本内容解析并生成表格

看传智播客的前端教程有段时间了,昨天开始看php的视频,本文介绍当中的一个案例。

这个文本内容是这样的:


这是最终做出来的效果:

第一步:获取文件内容

header("Content-Type:text/html;charset=utf-8");
//使用UTF-8编码
//$name = file_get_contents("names.txt");
//读取文本内容,并用一个变量保存

这里我们稍微写一下样式:

    <style>
        table{
            margin:0 auto;
        }
        th,td{
            border:1px solid red;
            width:100px;
            height:20px;
            line-height:20px;
            text-align:center;
        }
    </style>

文件内容处理

$line = explode("\n",$name);
//用换行分开拆分并添加为数组
foreach ($line as $item){
    //循环遍历数组,逐行解析
    if(!item) continue;
    $cols = explode("|",$item);
    //用|拆分病添加到cols
    $data[] = $cols;
}

展示效果

<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 $col):?>
                <!-- 画多少列 -->
                <?php $col = trim($col);?>
                <!-- 清除多余字符,如空格 -->
                <?php if(strpos($col,"http://") === 0):?>
                <!-- 判断是否是网址 -->
                    <td>
                    <!-- 如果是网址的话,输出链接为小写,展示效果删掉http://输出 -->
                        <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>

发表评论

电子邮件地址不会被公开。 必填项已用*标注