【问题标题】:Notice: Undefined offset: 1 on array size 2注意:未定义的偏移量:数组大小 2 上的 1
【发布时间】:2015-07-24 14:23:51
【问题描述】:

我有这个 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&lt;BR&gt;patricia,666565656,mujer&lt;BR&gt;),但在此回显下,它也会生成错误

注意:未定义的偏移量:1

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

【问题讨论】:

  • 添加一些检查密钥是否存在。
  • 你确定 $parts 包含 2 个元素吗?
  • 不是2行的时候吗?

标签: php parsing csv file-upload


【解决方案1】:

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

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

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

这就是索引 1 不存在的原因,以及出现该错误的原因。

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多