0
我一直在研究這個問題幾個小時,並使用了來自網絡和堆棧溢出的許多資源,但我似乎無法通過這最後一件事。我正在嘗試獲取csv文件的內容並將它們存儲在數組中,並通過會話將結果打印在另一頁上。上傳CSV然後將結果存儲到數組
的index.php(顯示形式用於上載文件)
<html>
<form action="http://mysite.org/~me/upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br />
<input type="submit" value="Now upload it!">
</form>
</html>
upload.php的(如果CSV,輸出文件大小,的print_r應包含所有數據陣列)
<?php
session_start();
if (($_FILES["file"]["type"] == "application/vnd.ms-excel"))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />";
$file = fopen($_FILES["file"]["tmp_name"], 'r');
while (($line = fgetcsv($file)) !== FALSE) {
//$line is an array of the csv elements
print_r($line);
$_SESSION['line']=$line;
}
fclose($file);
}
}
else
{
echo "Invalid file";
}
echo "<a href='http://mysite.org/~me/yes.php'>Yes</a>";
?>
yes.php
<?php
session_start();
$data = $_SESSION['line'];
print_r($data);
?>
來自上傳頁面的print_r應該與來自yes頁面的print_r相同,但是我t不是。它只顯示最後一個數組。我不明白我會怎麼處理這個問題。
作爲一個方面說明:我只在PHP編程約2周,所以請足夠深思熟慮以解釋您的答案。這真的有幫助!謝謝=)
哦!所以即使$ line是一個數組。每當while循環運行時它都會被覆蓋。所以,爲了追加,我必須創建另一個數組。疑難雜症。感謝您的明確迴應。 – EGHDK 2012-03-31 03:58:07
是的,你懂了! – Josh 2012-03-31 03:59:26