php - 从 JSON 数据生成自定义 CSV 导出
问题描述
在我的一个 ModelAdmin 选项卡中,我有一列包含 JSON 编码的数据,我想将其转换为 CSV 表并导出。我见过的大多数问题都是直接从表中导出数据行,但是如何先从其中一列中提取数据,然后再将其转换为 CSV 表进行导出。
任何想法将不胜感激。
解决方案
当您使用 PHP 并希望输出为 CSV 时,您应该做的第一件事就是将该 JSON 转换为 Array。然后您可以使用一些 PHP 函数将结果提示为 CSV。让我们编码:
$arr = json_decode($jsonInput, true);
if(empty($arr)) {
die("INVALID JSON");
}
$filename = "your-filename.csv";
$now = gmdate("D, d M Y H:i:s");
header("Expires: $now GMT");
header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
header("Last-Modified: {$now} GMT");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/csv");
header("Content-Disposition: attachment;filename=$filename");
header("Content-Transfer-Encoding: binary");
$df = fopen('php://output', 'w');
fputs($df, $bom = ( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
fputcsv($df, array_keys(reset($arr)), ';');
foreach($arr as $row) {
fputcsv($df, $row, ';');
}
fclose($df);
推荐阅读
- css - 从 Google 表格列数据创建 CSS 类
- ios - React-native unrecognized font family error
- html - 使用 BlueprintJS 表对列进行排序
- linux - 如何从没有主目录的 /etc/passwd 获取所有用户
- python - 如何使用两列来区分熊猫数据框中的数据点
- r - 替换文本向量中的字符串无包
- typescript - 在传播对象值之前分配它会改变它的类型吗?
- javascript - 如何将屏幕视图移动到 Google 表格中的光标单元格 - s.getRange(s.getCurrentCell().getA1Notation())?
- python - `pip install --upgrade pip` 与 `python -m pip install --upgrade pip`
- r - 提取置信区间 data.table