2016-06-16 11 views
0

Ich versuche, den folgenden Code zu einem Speicherort auf dem Server zu speichern, kann jemand helfen. Momentan wird nur über den Browser heruntergeladen, aber ich möchte einen Cron ausführen und in einem Dateispeicherort speichern.Speichern Excel-Export in Datei-Speicherort PHP

<?php 
// Connection 

$conn=mysql_connect('**','**','**'); 
$db=mysql_select_db('SHP',$conn); 

$filename = "stockbook.xls"; // File Name 
// Download file 
header("Content-Disposition: attachment; filename=\"$filename\""); 
header("Content-Type: application/vnd.ms-excel"); 
file_put_contents("http://kempfenterprises.com/dash/reports/stockbook.xls"); 
$user_query = mysql_query("select * from troy.stockbook "); 
// Write data to file 
$flag = false; 
while ($row = mysql_fetch_assoc($user_query)) { 
if (!$flag) { 
    // display field/column names as first row 
    echo implode("\t", array_keys($row)) . "\r\n"; 
     $flag = true; 
    } 
    echo implode("\t", array_values($row)) . "\r\n"; 
    } 
?> 

Vielen Dank im Voraus

+0

speichern möchten, und was ist genau das Problem? –

+0

Verwenden Sie fopen(), um eine Datei zum Schreiben zu öffnen. wechsle dein Echo und implode fputcsv(), um deine Zeilen auch in diese Datei zu schreiben; und benutze fclose(), um es zu schließen, wenn du mit dem Schreiben fertig bist. –

+0

wie würde ich fopen benutzen, muss ich mein Echo komplett entfernen? – troy

Antwort

0
<?php 
$conn=mysql_connect('**','**','**'); 
$db=mysql_select_db('SHP',$conn); 

$sql = "select * from troy.stockbook"; 
$qur = mysql_query($sql); 

// Enable to download this file 
$filename = "stockbook.csv"; 

header("Content-Disposition: attachment; filename=\"$filename\""); 
header("Content-Type: text/csv"); 

$display = fopen("php://output", 'w'); 

$flag = false; 
while($row = mysql_fetch_assoc($qur)) { 
if(!$flag) { 
    // display field/column names as first row 
    fputcsv($display, array_keys($row), ",", '"'); 
    $flag = true; 
} 
fputcsv($display, array_values($row), ",", '"'); 
    } 

fclose($display); 
?> 

dies mit fopen, wie kann ich einen Ort hinzufügen, jetzt, wo ich es

+0

Die erste Option für 'fopen()' ist ein Dateiname. Sie verwenden 'php: // input' als Dateinamen; ändere das in einen beliebigen Verzeichnispfad/Dateinamen, den du auf deinem Server haben willst; dann lassen Sie die beiden Kopfzeilen fallen, weil Sie es nicht mehr an einen Browser senden –

+0

Danke für Ihre Hilfe Mark, ich habe die Header entfernt und die Ausgabe geändert, um zu lesen "http://kempfenterprises.com/dash/reports/ "Aber ich bekomme immer noch nicht die Datei zum Speichern an diesem Ort. Ist der Standort im richtigen Format? – troy

+0

Nein, das ist nur ein Ordner .... Sie müssen "foldername/filename.extension" angeben, da das übergebene Argument speichern –

Verwandte Themen