Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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/4/maven/5.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_Edi - Fatal编程技术网

Php 读取上传文件上的所有行

Php 读取上传文件上的所有行,php,edi,Php,Edi,我知道这个问题已经存在了,但就我而言,它有点难 我正在PHP上阅读.EDI文件(当前成功),过程: 1.-我从html表单上传.edi文件。 2.-我从表单中发送这些属性来阅读我的php代码 我得到的代码如下: if(isset($_FILES['ufile']['name'])){ $tmpName = $_FILES['ufile']['tmp_name']; $newName = "" . $_FILES['ufile']['name']; if(!is_uploa

我知道这个问题已经存在了,但就我而言,它有点难

我正在PHP上阅读.EDI文件(当前成功),过程:

1.-我从html表单上传.edi文件。 2.-我从表单中发送这些属性来阅读我的php代码

我得到的代码如下:

if(isset($_FILES['ufile']['name'])){
   $tmpName = $_FILES['ufile']['tmp_name'];
   $newName = "" . $_FILES['ufile']['name'];   
   if(!is_uploaded_file($tmpName) ||
                        !move_uploaded_file($tmpName, $newName)){
        echo "<table><tr><td><strong>Failed to read file ".$_FILES['ufile']['name']."</strong></td></tr></table>";
   } else {
        echo "<br>";

        //coloca o conteudo do arquivo para a variavel $arquivo         
        $ponteiro = fopen ($_FILES['ufile']['name'],"r");
        $arquivo = '';
        while (!feof ($ponteiro)) {
         $arquivo = $arquivo.fgets($ponteiro,4096);

        }           
        fclose ($ponteiro);
        if (unlink($_FILES['ufile']['name']) != 1) echo "Erro ao deletar arquivo!";         

        $padrao = fnc_resgata_padrao($arquivo);

        if ($padrao == "COARRI"){
            $a = fnc_processa_coarri(trim($arquivo));

            prc_mostra_coarri($a);              
        }
        elseif ($padrao == "CODECO") {
            $a = fnc_processa_codeco(trim($arquivo));
            prc_mostra_codeco($a);              
        }
        else {
            echo "<table><tr><td><strong>Invalid file</strong></td></tr></table>";
        }           

   } 
} else {
     echo "You need to select a file.  Please try again.";
  }
if(isset($\u文件['ufile']['name'])){
$tmpName=$\u文件['ufile']['tmp\u名称'];
$newName=”“.$\u文件['ufile']['name'];
如果(!已上载文件($tmpName)||
!移动上传的文件($tmpName,$newName)){
echo“无法读取文件“$\u文件['ufile']['name']”。;
}否则{
回声“
”; //arquivo的背景是一个变量$arquivo $ponteiro=fopen($_文件['ufile']['name'],“r”); $arquivo=''; 而(!feof($ponteiro)){ $arquivo=$arquivo.fgets($ponteiro,4096); } fclose($ponteiro); 如果(取消链接($_文件['ufile']['name'])!=1)回显“Erro ao deletar arquivo!”; $padrao=fnc_resgata_padrao($arquivo); 如果($padrao==“COARRI”){ $a=fnc_processa_coarri(修剪($arquivo)); prc_mostra_coarri($a); } elseif($padrao==“编解码器”){ $a=fnc_processa_codec(trim($arquivo)); 中华人民共和国编解码器(a美元); } 否则{ 回显“无效文件””; } } }否则{ echo“您需要选择一个文件。请重试。”; }
问题是,以这种方式,只读取.EDI文件的第一行,而不是所有行。我试图理解我必须打印一个数组,但我不知道怎么做,因为我的
$a
具有我感兴趣的值

如果这个帖子很难理解,请让我知道

更新1


我只是删除了一些代码行,没什么重要的。

$I=0;而(!feof($ponteiro)){$i++;$arquivo=$arquivo.fgets($ponteiro,4096)
然后检查$i==1。如果因为文件格式无效而决定不使用该文件,只需中断;然后关闭/取消链接该文件。否则只需保持feof循环。在EDI的情况下,可以读取任何扩展名。我会尝试,我想我必须在“if”上检查$i我调用函数的地方,对吗?伪代码:设置$i=0;只要文件中还有一行,就读取文件的第行;$i++;检查$i==1是否为true:get$padrao=fnc_resgata_padrao($arquivo);现在进行以下检查(比如if($padrao==“COARRI”){)或者中断;如果你想跳过文件。如果你认为这对你没有帮助,请尽可能简单地描述你想做什么。比如:如果这是第一行,请逐行读取文件,检查一些函数是否有其他功能,只需执行其他操作,等等。部分伪代码有意义,但正如你所说,我需要读取文件b行y行,问题是当上传文件时,它只读取位置0(cero)上的数组,当我执行var_dump时,只显示位置0。此函数是处理文件的人,其余函数管理已读取的数据。