Com a ajuda da Gemini, fiquei sabendo que o PHP trabalha com o arquivo zipado. Graças a esse recurso, não preciso mais extrair um arquivo zipado e depois mandar centenas de arquivos numa pasta reservada para o PHP.
arquivo index.php
<linkhref="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"rel="stylesheet"><formmethod=postclass="w-50 m-auto"enctype="multipart/form-data"><labelfor=arquivo>Escolha o arquivo Zipado</label><inputtype=filename=arquivo><inputtype=submit></form><?php
if(!isset($_FILES['arquivo'])){exit;}if($_FILES['arquivo']['error']){
echo "O arquivo ". $_FILES['arquivo']['name']." tem problemas";exit;}
$zip=newZipArchive();
$zip->open($_FILES['arquivo']['tmp_name']);
$contaArquivos = $zip->count();
$notasFiscais =[];
$somaTotal =0;for($i=0;$i<$contaArquivos;$i++){
$nfce=$zip->getFromIndex($i);
$dom=newDOMDocument();
$dom->loadXML($nfce);
$nfe=$dom->documentElement;
$notasFiscais[]=$nfe->getElementsByTagName('nNF')->item(0)->textContent;
$somaTotal+=$nfe->getElementsByTagName('vNF')->item(0)->textContent;}
sort($notasFiscais);
$primeiraNota=intval($notasFiscais[0]);
$ultimaNota=intval($notasFiscais[$contaArquivos-1]);?><tableclass="table table-striped w-50 m-auto"><tr><td>Número de arquivos xml<tdclass=text-end><?=$contaArquivos?><tr><td>Total das Notas Fiscais<tdclass=text-end><?=number_format($somaTotal,2,',','.')?><tr><td>Primeira Nota<tdclass=text-end><?=$primeiraNota?><tr><td>Última Nota<tdclass=text-end><?=$ultimaNota?><tr><td>Notas Faltantes<tdclass=text-end><?=$ultimaNota-$primeiraNota+1-$contaArquivos?><?php
for($i=$primeiraNota;$i<=$ultimaNota;$i++){if(!in_array($i,$notasFiscais)){?><tr><td><?=$i?><?php
}}?></table>
Pergunta
Frank K Hosaka
Com a ajuda da Gemini, fiquei sabendo que o PHP trabalha com o arquivo zipado. Graças a esse recurso, não preciso mais extrair um arquivo zipado e depois mandar centenas de arquivos numa pasta reservada para o PHP.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.