我的HTML:CSV下載
<h2>Download Example CSV - IN DEVELOPMENT (not working yet)</h2><br />
<form method="post" enctype="multipart/form-data">
<input type="submit" name="example-csv" value="Download Example" />
</form>
我的PHP:
function array_to_csv_download($array, $filename = "example.csv", $delimiter=",") {
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="'.$filename.'";');
// open the "output" stream
// see http://www.php.net/manual/en/wrappers.php.php#refsect2-wrappers.php-unknown-unknown-unknown-descriptioq
$f = fopen('php://output', 'w');
foreach ($array as $line) {
fputcsv($f, $line, $delimiter);
}
fclose($f);
}
if(isset($_POST['example-csv'])) {
$data = array (
array('column_1', 'column_2', 'column_3'),
array('test 1', 'test 2', 'test 3',)
);
array_to_csv_download($data);
}
會發生什麼:
當我點擊下載示例提交按鈕,它給了我一個文件example.csv。這個文件幾乎包含了當前頁面的所有代碼,包括所有JavaScript,HTML和其他任何發送給瀏覽器的代碼。
我可以按Ctrl + F找到我想要的混亂的實際數據。
我的問題:
爲什麼我讓所有的代碼的頁面,而不是僅僅簡單的CSV我在找?
資源用於獲取對我的觀點:
How to create and download a csv file from php script?
Calling a particular PHP function on form submit
最後說明:
我適應上面我的需要的資源,但似乎無法得到我正在尋找的東西。我希望這足夠詳細。如有需要,請要求澄清。
謝謝。
您需要更改您的服務器代碼以不提供HTML。 – SLaks
如果您使用表單調用同一頁面,那麼您的代碼在獲取到PHP代碼之前是否已經輸出了所有樣式表和HTML? – andrewsi