【发布时间】:2010-04-11 02:05:22
【问题描述】:
我正在上传一个文件,然后尝试使用 fgetcsv 对其进行处理。
这是我下面的脚本。在我添加文件上传部分之前一切正常。现在它没有显示任何错误,只是没有显示上传的数据。
我收到“文件上传”通知,文件保存正确,但条目数计数器显示为 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');在你的代码中的某个地方。