【问题标题】:submit file via form and handle it in a php function通过表单提交文件并在 php 函数中处理它
【发布时间】:2009-09-30 20:29:53
【问题描述】:

我需要上传一个文件(在本例中为 csv 文件)并将其内容加载到以下函数中:

function csv2xml($file, $container = 'data', $rows = 'row')
{
        $r = "<{$container}>\n";
        $row = 0;
        $cols = 0;
        $titles = array();


        while (($data = fgetcsv($file, 1000, ',')) !== FALSE)
        {
             if ($row > 0) $r .= "\t<{$rows}>\n";
             if (!$cols) $cols = count($data);
             for ($i = 0; $i < $cols; $i++)
             {
                  if ($row == 0)
                  {
                       $titles[$i] = $data[$i];
                       continue;
                  }

                  $r .= "\t\t<{$titles[$i]}>";
                  $r .= $data[$i];
                  $r .= "</{$titles[$i]}>\n";
             }
             if ($row > 0) $r .= "\t</{$rows}>\n";
             $row++;
        }
        $r .= "</{$container}>";

        return $r;
}

这就是我调用函数的方式

csv2xml($_POST['file'], $container = 'wholething', $rows = 'item');

在表单中输入框的名称是文件

我收到以下警告:

  fgetcsv() expects parameter 1 to be resource, null given

【问题讨论】:

    标签: php csv


    【解决方案1】:

    需要先打开文件,例如:

    $filePointer = fopen($file, "r"); // read-only
    

    然后使用:

    while (($data = fgetcsv($filePointer, 1000, ',')) !== FALSE)
    

    检索您的数据。

    请注意,您可能需要查看 PHP 的 file upload 信息以确保您使用 $_FILES 数组来获取上传的文件。而不仅仅是 $_POST。

    【讨论】:

      【解决方案2】:

      @richsage 已经回答了这个问题。如果您仍然有问题,visit the documentation 是一个工作示例。我只是想指出你的函数调用:

      csv2xml($_POST['file'], $container = 'wholething', $rows = 'item');
      

      虽然它有效,但这不是你调用函数的方式。

      csv2xml($_POST['file'], 'wholething', 'item');
      

      是你的意思。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-22
        • 2020-12-27
        • 2020-06-27
        • 1970-01-01
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 2011-04-08
        相关资源
        最近更新 更多