0

0

PHP中处理JSON数组并以HTML表格形式展示数据

霞舞

霞舞

发布时间:2025-11-12 13:38:01

|

220人浏览过

|

来源于php中文网

原创

php中处理json数组并以html表格形式展示数据

本教程详细指导如何在PHP中处理包含数组的JSON数据。通过`file_get_contents`获取JSON内容,并使用`json_decode(..., true)`将其转换为PHP关联数组。文章将重点展示如何遍历这些数组记录,并将其关键字段以清晰的HTML表格形式输出,提供完整的代码示例和实践建议,帮助开发者高效地展示外部JSON数据。

在现代Web开发中,从外部API或文件中获取JSON格式的数据是一项常见任务。PHP提供了强大的内置函数来解析和处理这些数据。本文将深入讲解如何获取包含数组的JSON数据,将其解码为PHP可操作的数组结构,并最终以美观且易读的HTML表格形式呈现出来。

获取并解析JSON数据

首先,我们需要从指定的URL或本地文件获取JSON字符串。PHP的file_get_contents()函数是完成此任务的理想选择。获取到JSON字符串后,json_decode()函数负责将其转换为PHP变量。

 Array ( [id] => 13355, [bin] => 540134, ... )
//     [1] => Array ( [id] => 13356, [bin] => 547287, ... )
//     ...
// )
?>

在上述代码中,$data变量现在包含了一个PHP数组,其中每个元素又是一个关联数组,代表了JSON中的一个记录。

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

遍历与显示JSON数组数据

要将这些数据以表格形式展示,我们需要遍历 $data 数组中的每一个记录,并为每个记录生成一行HTML表格。

构建HTML表格

一个标准的HTML表格由

标签定义,内部包含 用于表头、 用于表体。每一行由 标签定义,而每个单元格则由 "; echo ""; // 假设所有记录的键都相同,我们可以从第一个记录中提取键作为表头 $first_record = reset($data); // 获取第一个记录 if (is_array($first_record)) { foreach (array_keys($first_record) as $key) { // 过滤掉不希望显示的字段,例如 'created_at', 'updated_at', 'ekalan' if (!in_array($key, ['created_at', 'updated_at', 'ekalan'])) { echo ""; } } } echo ""; echo ""; echo ""; // 遍历 $data 数组中的每个记录 foreach ($data as $record) { echo ""; // 遍历当前记录的每个字段 foreach ($record as $key => $value) { // 同样过滤不希望显示的字段 if (!in_array($key, ['created_at', 'updated_at', 'ekalan'])) { // 使用 htmlspecialchars() 防止XSS攻击,并确保特殊字符正确显示 echo ""; } } echo ""; } echo ""; echo "
(数据单元格)或 (表头单元格)定义。
"; // 添加边框以便查看效果
    echo "
" . htmlspecialchars(str_replace('_', ' ', ucfirst($key))) . "
" . htmlspecialchars($value) . "
"; } else { echo "

没有可显示的数据。

ReportPlus数据报表中心小程序
ReportPlus数据报表中心小程序

ReportPlust意在打造一套精美的数据报表模板,里面高度封装日历组件、表格组件、排行榜组件、条形进度条组件、文本块组件以及ucharts的多个图表组件,用户只需要按照虚拟数据的格式,传特定数据即可方便、快捷地打造出属于自己的报表页面。该小程序主要使用了ucharts和wyb-table两插件实现的数据报表功能。 特点使用的是uni-app中最受欢迎的图表uCharts插件完成图表展示,该插件

下载
"; } ?>

在这个示例中,我们动态地从第一个记录的键中生成了表格的列头,并遍历了所有记录以填充表格内容。htmlspecialchars() 函数用于转义HTML特殊字符,这对于防止跨站脚本攻击(XSS)至关重要。

完整代码示例

将上述步骤整合,形成一个完整的PHP脚本:

错误:无法获取JSON数据。请检查URL或网络连接。

"); } // 4. 将JSON字符串解码为PHP关联数组 $data = json_decode($json_string, true); // 5. 错误处理:检查JSON解码是否成功 if (json_last_error() !== JSON_ERROR_NONE) { die("

错误:JSON解码失败。原因: " . json_last_error_msg() . "

"); } // 6. 准备HTML表格输出 if (is_array($data) && !empty($data)) { echo ""; echo ""; echo ""; echo " "; echo " "; echo " JSON数据表格展示"; echo " "; echo ""; echo ""; echo "

JSON数据列表

"; echo " "; echo " "; echo " "; // 定义要显示的字段及其对应的表头名称 $display_fields = [ 'id' => 'ID', 'bin' => 'BIN', 'tur' => '类型', 'banka_adi' => '银行名称', 'type' => '卡类型', 'name' => '简称' // 'created_at', 'updated_at', 'ekalan' 等字段在此处被排除 ]; foreach ($display_fields as $field_key => $header_name) { echo ""; } echo " "; echo " "; echo " "; // 遍历 $data 数组中的每个记录 foreach ($data as $record) { echo " "; foreach ($display_fields as $field_key => $header_name) { // 检查字段是否存在,如果不存在则显示空字符串或默认值 $value = isset($record[$field_key]) ? $record[$field_key] : ''; echo ""; } echo " "; } echo " "; echo "
" . htmlspecialchars($header_name) . "
" . htmlspecialchars($value) . "
"; echo ""; echo ""; } else { echo "

没有可显示的数据,或者数据格式不符合预期。

"; } ?>

注意事项与最佳实践

  1. 错误处理: 在实际应用中,务必对file_get_contents()和json_decode()的返回值进行检查。网络问题、URL错误或无效的JSON格式都可能导致脚本失败。使用json_last_error()和json_last_error_msg()可以获取详细的JSON解析错误信息。
  2. 数据安全: 在将任何来自外部源的数据输出到HTML页面之前,始终使用htmlspecialchars()函数进行转义。这可以有效防止跨站脚本(XSS)攻击,因为恶意脚本可能会被注入到数据中。
  3. 动态列处理: 如果JSON数据的结构可能变化(例如,字段名称或数量),可以考虑更灵活的表头生成方式。例如,可以从第一个数据记录中提取所有键作为列头,或者维护一个白名单/黑名单来控制哪些字段显示。本示例中采用了预定义$display_fields的方式,提供了更好的控制。
  4. 性能优化: 对于非常大的JSON文件,file_get_contents()可能会占用大量内存。在这种情况下,可以考虑使用流式读取或分块处理JSON数据,但这超出了本教程的范围。
  5. 用户体验: 除了基本的表格样式,还可以引入CSS来美化表格,使其更具可读性和吸引力。
  6. 字段存在性检查: 在访问 $record[$field_key] 之前,使用 isset() 或 array_key_exists() 检查字段是否存在是一个好习惯,以避免在某些记录缺少特定字段时产生PHP警告。

总结

通过本教程,我们学习了如何在PHP中获取、解码并处理包含数组的JSON数据。关键步骤包括使用file_get_contents()获取JSON字符串,json_decode(..., true)将其转换为PHP关联数组,以及利用foreach循环遍历数组内容并以HTML表格形式输出。遵循错误处理和安全最佳实践,可以确保您的应用程序健壮且安全地展示外部数据。

相关专题

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

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

1937

2023.09.01

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

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

1277

2023.10.11

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

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

1180

2023.10.11

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

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

948

2023.10.23

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

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

1400

2023.10.23

html怎么上传
html怎么上传

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

1229

2023.11.03

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

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

1439

2023.11.09

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

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

1303

2023.11.13

vlookup函数使用大全
vlookup函数使用大全

本专题整合了vlookup函数相关 教程,阅读专题下面的文章了解更多详细内容。

28

2025.12.30

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.7万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.7万人学习

CSS教程
CSS教程

共754课时 | 17.2万人学习

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

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