[英]Empty rows in csv file
我需要一點幫助,我將表導出到csv文件,這為我添加了8個空行。 為什么呢 也許有人可以幫助我一點。
export.ctp文件
<?php
foreach ($data as $row):
foreach ($row['Kontaktid'] as &$cell):
// Escape double quotation marks
$cell = '"' . preg_replace('/"/','""',$cell) . '"';
endforeach;
echo implode(',', $row['Kontaktid']) . "\n";
endforeach;
?>
這就是這樣做
但是我不希望這些空行,當我將此文件導入mysql時,它也添加了這些空行。
感謝您的幫助!
如果我輸入var dump,那么我得到了。
嘗試這個:
$fh = fopen('./file1.csv', 'wt');
foreach ($data as $row) {
if (! empty($row['Kontaktid'])) {
fputcsv($fh, $row['Kontaktid']);
}
}
fclose($fh);
將'./file1.csv'
替換為您的文件名和路徑。 如果需要在屏幕上轉儲CSV內容,則將第一行替換為$fh = STDOUT;
使用您的代碼:
<?php
foreach ($data as $row):
$isRowEmpty = false;
foreach ($row['Kontaktid'] as &$cell):
// we assume the row is empty if the first cell is empty
if(empty($cell)) {
$isRowEmpty = true;
break;
} else {
// Escape double quotation marks
$cell = '"' . preg_replace('/"/','""',$cell) . '"';
}
endforeach;
if(!$isRowEmpty) {
echo implode(',', $row['Kontaktid']) . "\n";
}
endforeach;
?>
希望這可以幫助!
只要檢查一下,您的行就不會為空:
<?php
foreach ($data as $row):
if (!isset($row['Kontaktid']) || !$row['Kontaktid']) continue; // <-add this line
foreach ($row['Kontaktid'] as &$cell):
// Escape double quotation marks
$cell = '"' . preg_replace('/"/','""',$cell) . '"';
endforeach;
echo implode(',', $row['Kontaktid']) . "\n";
endforeach;
可能不是此代碼中的問題。
檢查兩次,確認沒有任何換行符在任何地方回顯。
可能是這樣的:
<?php
//php code
?>
↓
↓
↓
<?php ?>
塊之外的所有內容都是無聲的,相當於echo "...";
因此,這些換行符的打印方式類似於echo "\\n\\n\\n\\n";
好的做法是刪除最后一個?>
添加:
if (isset($row['Kontaktid']) && strlen($row['Kontaktid']) && !empty($row['Kontaktid']))
之前:
echo implode(',', $row['Kontaktid']) . "\n";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.