2016-06-16 23 views
0

我想獲得下面的代碼以保存到服務器上的文件位置,任何人都可以幫忙。目前它只是通過瀏覽器下載,但我想運行一個cron並保存在一個文件位置。保存Excel導出到文件位置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"; 
    } 
?> 

在此先感謝

+0

什麼問題究竟是一個位置? –

+0

使用fopen()打開文件進行寫入;切換你的echo和implode使用fputcsv()來寫你的行也是文件;並使用fclose()關閉它,當你寫完 –

+0

我將如何使用fopen,我是否需要完全刪除我的回聲 – troy

回答

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); 
?> 

這是使用的fopen我怎麼可以現在添加,我想將其保存

+0

fopen()的第一個選項是文件名。你使用'php:// input'作爲文件名;將其更改爲您希望在服務器上使用的任何目錄路徑/文件名;然後放下兩個標題行,因爲您不再將它發送到瀏覽器 –

+0

感謝您的幫助Mark,我已經刪除了標題並將輸出更改爲「http://kempfenterprises.com/dash/reports/」 「但我仍然沒有得到該文件在該位置保存。該位置的格式是否正確? – troy

+0

不,這只是一個文件夾....你需要提供「foldername/filename.extension」作爲參數傳遞給保存 –