PHP-将HTML表转换为CSV会添加空行
我有一个简单的PHP脚本,可以将HTML表转换为CSV文件。由于UTF-8转换原因,我添加了PHP-将HTML表转换为CSV会添加空行,php,html,excel,csv,utf-8,Php,Html,Excel,Csv,Utf 8,我有一个简单的PHP脚本,可以将HTML表转换为CSV文件。由于UTF-8转换原因,我添加了fwrite($fp,“\xEF\xBB\xBF”)和所有内容都可以正常工作 使用Mac预览打开此文件不会显示空行,当我删除fwrite($fp,“\xEF\xBB\xBF”)它也不会添加空行,但是我的文本当然会被销毁 这是我的PHP脚本: HTML表格非常常见: ... 问题在于重复迭代 foreach($html->find('tr') as $element) { $td =
fwrite($fp,“\xEF\xBB\xBF”)在MS Excel(Mac和Windows-最新版本)中打开CSV文件时,除了额外的空行(每秒一行)外,代码>和所有内容都可以正常工作
使用Mac预览打开此文件不会显示空行,当我删除fwrite($fp,“\xEF\xBB\xBF”)代码>它也不会添加空行,但是我的文本当然会被销毁
这是我的PHP脚本:
HTML表格非常常见:
...
问题在于重复迭代
foreach($html->find('tr') as $element) {
$td = [];
foreach( $element->find('th') as $row) {
$td[] = $row->plaintext;
}
if (!empty($td)) {
fputcsv($fp, $td, ';');
}
$td = [];
foreach( $element->find('td') as $row) {
$td[] = $row->plaintext;
}
fputcsv($fp, $td, ';');
}
这是一个简单的修复方法,但我建议重写整个foreach。嗨,德卡努斯,谢谢你的快速反应。我也考虑过这个问题,但是我的表结构中肯定没有空值。@Neilhut我发现了这个问题,这是第一个foreach。当你在星期四出发的时候。仅存在于一行中。但是您迭代并为每一行添加一个空td。看我编辑的答案哇,就是这样。非常感谢迪卡努斯