0

0

PHP 教程:从文本文件生成带有汇总行的 HTML 表格

聖光之護

聖光之護

发布时间:2025-08-16 21:22:22

|

1066人浏览过

|

来源于php中文网

原创

php 教程:从文本文件生成带有汇总行的 html 表格

本文介绍如何使用 PHP 从文本文件中读取数据,并将其格式化为 HTML 表格。除了基本的数据展示,我们还将计算并添加一个包含汇总信息的最后一行,例如不同名称的数量、总薪资、最常见的城镇以及平均年龄。

从文本文件读取数据并生成 HTML 表格

首先,我们需要从文本文件中读取数据。假设我们的文本文件 name.txt 的内容如下:

name:Ivan,Salary:5000,town:Sofia,age:20
name:Pesho,Salary:1500,town:Pleven,age:19
name:Gosho,Salary:2000,town:Varna,age:18
name:Georgi,Salary:3000,town:Pleven,age:46
name:Ivailo,Salary:6000,town:Pleven ,age:25
name:Stamat,Salary:7000,town:Varna,age:46
name:Aleksandar,Salary:1500,town:Burgas,age:44
name:Kiko,Salary:5000,town:Plovdiv,age:25
name:Misho,Salary:5250,town:Sofia,age:24
name:Daniel,Salary:3000,town:Plovdiv,age:34
name:John,Salary:6000,town:Pleven,age:50
name:Ana,Salary:9000,town:Sofia,age:18
name:Maria,Salary:9500,town:Sofia,age:30
name:Marian,Salary:9500,town:Sofia,age:20
name:Petko,Salary:9500,town:Sofia,age:19
name:Nikola,Salary:9500,town:Sofia,age:45
name:Ani,Salary:9500,town:Sofia,age:47

以下 PHP 代码将读取此文件,并将其内容显示在一个 HTML 表格中:

";
echo "NameSalaryTownAge";

while (!feof($file)) {
    $string = fgets($file);
    $finalArray = [];

    $asArr = explode(',', $string);
    foreach ($asArr as $val) {
        $tmp = explode(':', $val);
        $finalArray[$tmp[0]] = trim($tmp[1] ?? ""); // 使用 null 合并运算符并trim
    }

    $cols = array_values($finalArray);
    [$name, $salary, $city, $age] = $cols; // 使用列表赋值

    $names[] = $name;
    $salaries[] = $salary;
    $cities[] = $city;
    $ages[] = $age;

    echo '';
    foreach ($cols as $col) {
        echo '' . $col . '';
    }
    echo '';

}

//计算汇总行
$countOfNames = count(array_unique($names));
$citiesCount = array_count_values($cities);
$maxVal = max($citiesCount);
$mostCommonCity = array_search($maxVal, $citiesCount);
$sumOnAllSalary = array_sum($salaries);
$averageAges = (int)(array_sum($ages) / count($ages));

echo '';
echo '' . $countOfNames . '';
echo '' . $sumOnAllSalary . '';
echo '' . $mostCommonCity . '';
echo '' . $averageAges . '';
echo '';

echo "";

fclose($file);

?>

代码解释:

文心快码
文心快码

文心快码(Comate)是百度推出的一款AI辅助编程工具

下载

立即学习PHP免费学习笔记(深入)”;

  1. 打开文件: fopen('name.txt', "r") 打开名为 name.txt 的文件,以只读模式打开。
  2. 初始化数组: $names, $cities, $salaries, $ages 用于存储从文件中提取的数据,以便后续计算。
  3. 输出表格头部: echo ""; 和 echo ""; 输出 HTML 表格的开始标签和表头。
  4. 循环读取文件: while (!feof($file)) 循环读取文件,直到文件结束。
  5. 读取一行数据: fgets($file) 从文件中读取一行数据。
  6. 分割字符串:
    • explode(',', $string) 将字符串按逗号分割成数组。
    • explode(':', $val) 将每个数组元素按冒号分割成键值对。
    • trim($tmp[1] ?? "") 移除值的前后空格,并使用 null 合并运算符,防止键不存在时出现错误。
  7. 提取数据到数组: 将提取的数据分别存入 $names, $salaries, $cities, $ages 数组。
  8. 输出表格行: echo '
  9. '; 和 echo ''; 输出 HTML 表格的每一行数据。
  10. 计算汇总信息:
    • count(array_unique($names)) 计算不同名称的数量。
    • array_count_values($cities) 统计每个城市出现的次数。
    • max($citiesCount) 找到出现次数最多的城市。
    • array_search($maxVal, $citiesCount) 获取出现次数最多的城市的名字。
    • array_sum($salaries) 计算所有薪资的总和。
    • (int)(array_sum($ages) / count($ages)) 计算平均年龄,并转换为整数。
  11. 输出汇总行: echo '
  12. '; 和 echo ''; 输出 HTML 表格的最后一行汇总数据。
  13. 关闭表格: echo "
  14. Name Salary Town Age
    ' . $col . '
    ' . ... . '
    "; 输出 HTML 表格的结束标签。
  15. 关闭文件: fclose($file) 关闭打开的文件。

注意事项

  • 确保 name.txt 文件存在,并且 PHP 脚本有读取权限。
  • 代码中的 $tmp[1] ?? "" 使用了 PHP 7+ 的 null 合并运算符。 如果你使用的是 PHP 7 之前的版本,请使用 isset($tmp[1]) ? $tmp[1] : "" 代替。
  • 可以根据实际需要修改表格的样式和汇总信息的计算方式。
  • 建议对用户输入的数据进行验证和过滤,以防止安全漏洞,例如跨站脚本攻击 (XSS)。
  • 错误处理:在实际应用中,应该添加错误处理机制,例如检查文件是否成功打开,以及在数据处理过程中是否发生错误。

总结

通过以上代码,我们成功地从文本文件中读取数据,并将其格式化为 HTML 表格,同时计算并添加了包含汇总信息的最后一行。这个例子展示了 PHP 在数据处理和网页生成方面的强大功能。你可以根据自己的需求修改和扩展这段代码,以适应更复杂的应用场景。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2679

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1660

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1515

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

952

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1419

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1235

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1488

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

0

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号