我有这个CSV文件:
german,6357787,hombre;
patricia,666565656,mujer;
这个PHP处理器:
if((!empty($_FILES["csv1"])) && ($_FILES['csv1']['error'] == 0)) {
//CHECK NOMBRE
$filename = basename($_FILES['csv1']['name']);
// CHECK EXTENSIÓN
$ext = substr($filename, strrpos($filename, '.') + 1);
//CHECK FORMATO & MIMETYPE
if (
(
($ext == "csv")
) && (
(in_array($_FILES['csv1']['type'],$mimes))
)
) {
//ANALISIS
$csv=$_FILES['csv1']['tmp_name'];
$file_handle = fopen($csv, "r");
while (!feof($file_handle) ) {
$line_of_text = fgets($file_handle);
$parts = explode(';', $line_of_text);
echo $parts[0] . $parts[1]. "<BR>";
}
fclose($file_handle);
} else {
echo "No se ha adjuntado el archivo CSV. <br>Formato no reconocido";
}
} else {
echo "No se ha adjuntado el archivo CSV. <br>El archivo no existe.";
}
当我向处理器发送我的CSV时,它会回显正确的信息(german,6351787,hombre<BR>patricia,666565656,mujer<BR>
),但是在此回声下,它也会产生错误
注意:未定义的偏移量:1
如果我的文件有两条记录,并且它回显了一个数组大小为2,为什么$parts[1]
会产生错误?
答案 0 :(得分:0)
您的CSV文件在文件末尾有一个空行。
该空行被发送到explode(';', $line_of_text);
,它返回一个包含一个空字符串的数组。
此时,$parts
只有一个元素,其索引为0
。
这就是索引1
不存在的原因,以及为什么会出现这个错误。