我上傳一個文件,然後嘗試使用fgetcsv來做它的事情。使用fopen上傳的文件與php
這是我的腳本。在添加文件上傳部分之前,一切正常。現在它沒有顯示任何錯誤,只是沒有顯示上傳的數據。
即時得到我的「文件上傳」的通知,文件被正確保存,但參賽人數的計數器顯示0
if(isset($_FILES[csvgo])){
$tmp = $_FILES[csvgo][tmp_name];
$name = "temp.csv";
$tempdir = "csvtemp/";
if(move_uploaded_file($tmp, $tempdir.$name)){ echo "file uploaded<br>"; }
$csvfile = $tempdir.$name;
$fh = fopen($csvfile, 'r');
$headers = fgetcsv($fh);
$data = array();
while (! feof($fh))
{
$row = fgetcsv($fh);
if (!empty($row))
{
$obj = new stdClass;
foreach ($row as $i => $value)
{
$key = $headers[$i];
$obj->$key = $value;
}
$data[] = $obj;
}
}
fclose($fh);
$c=0;
foreach($data AS $key){
$c++;
$phone = $key->PHONE;
$fax = $key->Fax;
$email = $key->Email;
// do things with the data here
}
echo "$c entries <br>";
}
如果您沒有收到任何錯誤,那麼您不顯示所有錯誤。例如,$ _FILES [csvgo]應該生成一個E_NOTICE級別的錯誤,因爲'csvgo'不是一個常量,你應該引用它。你應該確保你有error_reporting(E_ALL);和ini_set('display_errors','1');在你的代碼中的某處。 – Rithiur 2010-04-11 03:39:41