PHP 教程:从文本文件生成表格并计算统计信息

php 教程:从文本文件生成表格并计算统计信息

本文档旨在指导开发者如何使用 PHP 从文本文件中读取数据,生成 HTML 表格,并计算一些基本的统计信息,例如不同姓名的数量、薪资总和、最常见的城市以及平均年龄。通过本文,你将学习到文件读取、字符串处理、数组操作以及基本的 HTML表格生成。

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

首先,我们需要从文本文件中读取数据。假设我们的文本文件 name.txt 包含以下格式的数据:

name:Ivan,Salary:5000,town:Sofia,age:20name:Pesho,Salary:1500,town:Pleven,age:19name:Gosho,Salary:2000,town:Varna,age:18...

每一行代表一个人的信息,信息之间用逗号分隔,键值对之间用冒号分隔。

以下 PHP 代码可以读取文件,解析数据,并生成 HTML 表格:

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

<?php$file = fopen('name.txt', "r");if ($file) {    echo "";    echo "";    $names = [];    $cities = [];    $salaries = [];    $ages = [];    while (!feof($file)) {        $string = fgets($file);        if ($string === false) {            break; // 防止读取空行导致错误        }        $finalArray = [];        $asArr = explode(',', $string);        foreach ($asArr as $val) {            $tmp = explode(':', $val);            if (count($tmp) == 2) { // 确保分割结果包含键和值                $finalArray[trim($tmp[0])] = trim($tmp[1]); // 使用 trim() 移除多余的空格            }        }        if (empty($finalArray)) {            continue; // 跳过空行或格式错误的行        }        $name = $finalArray['name'] ?? '';        $salary = $finalArray['Salary'] ?? '';        $city = $finalArray['town'] ?? '';        $age = $finalArray['age'] ?? '';        $names[] = $name;        $salaries[] = $salary;        $cities[] = $city;        $ages[] = $age;        echo '';        echo ''; // 使用 htmlspecialchars() 防止 XSS 攻击        echo '';        echo '';        echo '';        echo '';    }    fclose($file);    // 计算统计信息    $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 '';    echo '';    echo '';    echo '';    echo '';    echo "
NameSalaryTownAge
' . htmlspecialchars($name) . '' . htmlspecialchars($salary) . '' . htmlspecialchars($city) . '' . htmlspecialchars($age) . '
' . $countOfNames . '' . $sumOnAllSalary . '' . $mostCommonCity . '' . $averageAges . '
";} else { echo "Unable to open file!";}?>

代码解释:

打开文件: fopen(‘name.txt’, “r”) 打开名为 name.txt 的文件,”r” 表示以只读模式打开。读取文件内容: while (!feof($file)) 循环读取文件,直到文件末尾。fgets($file) 从文件中读取一行。解析数据:explode(‘,’, $string) 将每一行按照逗号分割成数组。explode(‘:’, $val) 将每个元素按照冒号分割成键值对。trim() 函数用于移除字符串两侧的空白字符,确保数据清洗。构建 HTML 表格: 使用 echo 语句输出 HTML 标签,动态生成表格的行和单元格。htmlspecialchars() 函数用于转义 HTML 实体,防止 XSS 攻击。计算统计信息:array_unique($names) 获取不重复的姓名列表,count() 计算数量。array_count_values($cities) 统计每个城市出现的次数。max() 获取出现次数最多的城市的次数,array_search() 找到对应的城市。array_sum() 计算薪资总和。(int)(array_sum($ages) / count($ages)) 计算平均年龄,并强制转换为整数。输出统计信息: 将计算得到的统计信息输出到表格的最后一行。关闭文件: fclose($file) 关闭文件,释放资源。错误处理: 增加 if ($string === false) { break; } 和 if (empty($finalArray)) { continue; } 检查,防止空行和格式错误的行导致程序出错。空值处理: 使用 ?? ” 空合并运算符,为 $name,$salary,$city,$age 赋予默认值,避免因键不存在而报错。

注意事项

文件路径: 确保 name.txt 文件存在,并且 PHP 脚本有权限读取该文件。建议使用绝对路径或相对于脚本的路径。数据格式: 确保 name.txt 文件中的数据格式正确,每一行都包含 name、Salary、town 和 age 字段,并且使用逗号和冒号正确分隔。错误处理: 建议添加更完善的错误处理机制,例如使用 try-catch 块捕获异常,并记录错误日志。安全性: 使用 htmlspecialchars() 函数转义 HTML 实体,防止 XSS 攻击。性能: 如果文件很大,可以考虑使用 fgetcsv() 函数按行读取 CSV 文件,效率更高。编码: 确保文件编码与 PHP 脚本编码一致,避免出现乱码问题。建议使用 UTF-8 编码。

总结

通过本文,你学习了如何使用 PHP 从文本文件中读取数据,解析数据,并生成 HTML 表格。同时,你还学习了如何计算一些基本的统计信息,例如不同姓名的数量、薪资总和、最常见的城市以及平均年龄。希望本文能够帮助你更好地理解 PHP 文件操作、字符串处理和数组操作,并应用到实际项目中。

以上就是PHP 教程:从文本文件生成表格并计算统计信息的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1292008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月11日 07:55:46
下一篇 2025年12月11日 07:55:56

相关推荐

发表回复

登录后才能评论
关注微信