通过表单提交文件并在php函数中处理

通过表单提交文件并在php函数中处理,php,csv,Php,Csv,我需要上传一个文件(本例中为csv文件)并将其内容加载到以下函数中: function csv2xml($file, $container = 'data', $rows = 'row') { $r = "<{$container}>\n"; $row = 0; $cols = 0; $titles = array(); while (($data = fgetcsv($file, 1000, ','

我需要上传一个文件(本例中为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;
}
在表单中,输入框的名称为file

我得到以下警告:

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

您需要先打开文件,例如:

$filePointer = fopen($file, "r"); // read-only
然后使用:

while (($data = fgetcsv($filePointer, 1000, ',')) !== FALSE)
检索您的数据


请注意,您可能需要查看PHP的信息,以确保使用$\u文件数组获取上载的文件。不仅仅是$_POST。

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

csv2xml($_POST['file'], $container = 'wholething', $rows = 'item');
虽然它可以工作,但这不是调用函数的方式

csv2xml($_POST['file'], 'wholething', 'item');
这就是你想做的

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