注意:未定义的偏移量:数组大小 2 上的 1

Notice: Undefined offset: 1 on array size 2

我有这个 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>),但是在这个回显中,它也产生了一个错误

Notice: Undefined offset: 1

如果我的文件有两条记录,并且它回显了一个大小为 2 的数组,为什么 $parts[1] 会产生错误?

您的 CSV 文件末尾有一个空行。

那个空行被发送到 explode(';', $line_of_text);,returns 一个包含一个空字符串的数组。

此时,$parts只有一个元素,其索引为0

这就是索引 1 不存在的原因,也是您收到该错误的原因。