Php 读取上传文件上的所有行
我知道这个问题已经存在了,但就我而言,它有点难 我正在PHP上阅读.EDI文件(当前成功),过程: 1.-我从html表单上传.edi文件。 2.-我从表单中发送这些属性来阅读我的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
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。此函数是处理文件的人,其余函数管理已读取的数据。