0
我有一個簡單的PHP腳本,可以將HTML表格轉換爲CSV文件。由於UTF-8轉換原因,我添加了fwrite($fp,"\xEF\xBB\xBF");
,並且在MS Excel(Mac和Windows - 最新版本)中打開CSV文件時,除了額外的空行(每隔一行)之外,所有內容都能正常工作。PHP - 將HTML表格轉換爲CSV添加空行
用Mac打開此預覽不顯示空行 - 當我刪除fwrite($fp,"\xEF\xBB\xBF");
它也不會添加空行,但當然我的文本被破壞。
這是我的PHP腳本:
<?php
include('simplehtmldom_1_5/simple_html_dom.php');
$table = file_get_contents('hotel.html');
$html = str_get_html($table);
//Generate the CSV file header
header("Content-type: application/vnd.ms-excel");
header("Content-Encoding: UTF-8");
header("Content-type: text/csv; charset=UTF-8");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header('Content-Disposition: attachment; filename=pkb.csv');
$fp = fopen("php://output", "w");
fwrite($fp,"\xEF\xBB\xBF");
foreach($html->find('tr') as $element)
{
$td = array();
foreach($element->find('th') as $row)
{
$td [] = $row->plaintext;
}
fputcsv($fp, $td, ';');
$td = array();
foreach($element->find('td') as $row)
{
$td [] = $row->plaintext;
}
fputcsv($fp, $td, ';');
}
fclose($fp);
?>
HTML表格是相當普遍:
<table>
<th>
</th>
<tr>
<td>
</td>
</tr>
...
</table>
而且轉換後的CSV用Excel打開的樣子說:
CSV opened in Excel with empty rows
也許你會發現我的錯誤,它會產生這些額外的空行。 非常感謝球員
嗨decanus,感謝您的快速反應。我也考慮過這一點,但在我的表格結構中肯定沒有空值。 – neilhurt
@neilhurt我發現這個問題,它的第一個foreach。當你在日記上時。
哇,就是這樣。非常感謝decanus – neilhurt
相關問題