Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中操作多个文件_Php_File_Input - Fatal编程技术网

在PHP中操作多个文件

在PHP中操作多个文件,php,file,input,Php,File,Input,由于一次输入,我试图从web应用程序中的多个.csv导入数据,但我很难处理$\u文件 我所要做的就是根据文件名将文件分成两个数组。我无法将这些文件上载到服务器上 这是用于上载文件的表单页面中的输入: <input type="file" name="file[]" id="inputrapports" accept=".csv" multiple="true"/> 不幸的是,它不起作用。所以我试了一下: foreach($files['name'] as $f){ echo

由于一次输入,我试图从web应用程序中的多个.csv导入数据,但我很难处理$\u文件

我所要做的就是根据文件名将文件分成两个数组。我无法将这些文件上载到服务器上

这是用于上载文件的表单页面中的输入:

<input type="file" name="file[]" id="inputrapports" accept=".csv" multiple="true"/>
不幸的是,它不起作用。所以我试了一下:

foreach($files['name'] as $f){
    echo $f; //I'm getting the name
}
foreach($files as $f){
    echo $f['name']; //I'm not
}
我可以使用上面显示的第一次尝试,但在这种情况下,我无法将文件的整个数组放入适当的数组中

你能解释一下为什么这两次尝试给出了不同的答案吗

你能帮我找到解决办法吗


提前感谢。

解决这一问题的肮脏方法是:

$files = $_FILES['file'];
for($i=0;$i<count($files['tmp_name']); $i++)
{
    echo $files['name'][$i];
}
然后开始你的第一次旅行

$q=array();
$c=array();
foreach($files as $file){
    if(strtoupper(substr(str_replace(' ','',$file['name']),7,1))=="Q"){
        $q[]=$file;
    }else{
        $c[]=$file;
    }
}

$_文件的var_转储是什么?我用它来避免每次写入$_文件['file']是的,我想是的,但是var_转储($_文件)的输出会很有帮助。这里是:数组(5){[“name”]=>array(1){[0]=>string(43)“report quotiden activit”©09-07-2014.csv”}[“type”]=>array(1){[0]=>string(8)“text/csv”}“tmp u name”=>array(1){[0]=>string(23)“/srv/data/tmp/phwwn6k”}[“error”]=>array(1){[0]=>int(0)}[“size”]=>array(1){[0]=>int(291)}好的,我看到问题了。。。与预期的
$\u文件['file'][0]['name']
php构建
$\u文件['file']['name'][0]
。关于你的肮脏方式,我想你应该写echo
$FILES['tmp\u name'][$i]。但在本例中,我无法匹配字符串的第7个字符。可能是因为Q是第9个字符?不是使用
stru replace('''',,$file['name']),7,1
。无论如何,由于
多样化数组
函数,它现在可以工作了。非常感谢。
function diverse_array($vector) { 
    $result = array(); 
    foreach($vector as $key1 => $value1) 
        foreach($value1 as $key2 => $value2) 
            $result[$key2][$key1] = $value2; 
    return $result; 
}

$files = diverse_array($_FILES["file"]);
$q=array();
$c=array();
foreach($files as $file){
    if(strtoupper(substr(str_replace(' ','',$file['name']),7,1))=="Q"){
        $q[]=$file;
    }else{
        $c[]=$file;
    }
}