0
本準則的末尾添加當前頁面的htmlcode正常工作:PHP從數據庫創建csv。該數據庫不會被保存,但它在文件
$csvType = $_FILES['csvtype']['tmp_name']['csv-sparkasse'];
function handleCsv($em, $csvType){
$handle = fopen($csvType, "r");
$i = 0;
while (($fileop = fgetcsv($handle, 1000, ";")) !== false) {
$entity = new Sparkasse();
$entity->setAuftragskonto($fileop[0]);
$entity->setBuchungstag($fileop[1]);
$entity->setValutadatum($fileop[2]);
$entity->setBuchungstext($fileop[3]);
$entity->setVerwendungszweck($fileop[4]);
$entity->setZahlungspflichtiger($fileop[5]);
$entity->setKontonummer($fileop[6]);
$entity->setBlz($fileop[7]);
$entity->setBetrag($fileop[8]);
$entity->setWaehrung($fileop[9]);
$entity->setInfo($fileop[10]);
if ($i > 0) {
$em->persist($entity);
}
$i++;
}
$em->flush();
/* Update Table Sparkasse and create csv */
$connection = $em->getConnection();
$sql = $connection->prepare("UPDATE Sparkasse,Rechnung SET Sparkasse.Rechnungsnr = Rechnung.Belegnr
WHERE Sparkasse.Betrag = Rechnung.Gesamt AND
(Sparkasse.Verwendungszweck LIKE CONCAT('%',Rechnung.Belegnr,'%') OR
UPPER(Sparkasse.Zahlungspflichtiger) LIKE UPPER(Rechnung.Name) OR
UPPER(Sparkasse.Zahlungspflichtiger) = UPPER(Rechnung.Firma) OR
Sparkasse.Verwendungszweck LIKE CONCAT('%',Rechnung.Kundennr,'%'))");
$sql->execute();
$query = $em->createQuery("SELECT s FROM AdminBundle:Sparkasse s");
$tableSparkasse = $query->getArrayResult();
$this->createCsv($tableSparkasse, 'sparkasse.csv');
}
這裏是問題。在瀏覽器上下載了csv文件,表格是正確的。但是在文件末尾,您可以看到當前頁面的php代碼。
function createCsv($rows, $filename) {
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=' . $filename);
$fp = fopen('php://output', 'w');
foreach ($rows as $fields) {
fputcsv($fp, $fields, ';', '"');
}
fclose($fp);
}
在這裏,您可以看到該文件:https://dl.dropboxusercontent.com/u/6242507/sparkasse.csv
發送CSV文件下載的頁面發送文件後發出一些HTML。發送文件後頁面應該立即停止。 – 2014-02-07 01:12:39
這與symfony沒有任何關係嗎?或者你是在symfony控制器操作中創建它的? –
while while add if(is_numeric($ fileop [0])){....} – kraysak