Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudações, como eu faço para monitorar o conteúdo de novos arquivos criados em uma determinada pasta?
Motivo: quando se envia um arquivo para a Sefaz ela retorna alguns arquivos sendo o primeiro o mais importante pois o seu conteúdo informa o nome do próximo é assim por diante.
Agradeço a ajuda e por sugestões
>
6 horas atrás, Omar~ disse:
Não sei se é isso que procura, mas veja: filesystemiterator
No entanto ao meu entender deviria ter uma regra nos envios de forma a registrar tudo que é enviado.
Grato pela ajuda, no envio existe regra mas no retorno preciso aguardar o que surge na pasta.
Eu ate poderia pegar uma sequência de ir checando mas ao emitir vários envios ao mesmo tempo isso pode embaralhar, entao prefiro pegar o que é novo na pasta e olhar se o retorno é sobre aquele arquivo de remessa.
Obrigado pela dica
Geralmente esses arquivo vem de um retorno chamado de remessa e retorno, alguns arquivos são o mesmo nome quando vem ao seu servidor, se utiliza o CURL para conectar-se ao servidor, então, recomendo a utilização de uma biblioteca para CURL a guzzlehttp.
Recomendo também criar sua estrura de recebimento com um padrão ano/mes/dia/* arquivos
Sempre recebendo os arquivos enviando de outro servidor em um diretório base.
EX: SEFAZ\ano\mes\dia\arquivos......
e você faz um insert no banco de dados com o caminho para recuperação de forma mais eficiente, caso contrário, poderia fazer uma listagem na pasta gerando uma estrutura organizada para você.
SEFAZ\
SEFAZ\ANO
SEFAZ\ANO\MES
SEFAZ\ANO\MES\DIAS
Sempre será esse padrão.
Comandos para base de conhecimento:
DirectoryIterator
<?php
$it = new DirectoryIterator(__DIR__);
foreach ($it as $fileinfo) {
if (!$fileinfo->isDot())
var_dump($fileinfo->getFilename());
}
Examplo **FilesystemIterator**:
<?php
$it = new FilesystemIterator(__DIR__);
foreach ($it as $fileinfo) {
echo $fileinfo->getFilename() . "\n";
}>
Em 02/03/2020 at 21:11, paulinhosupriano disse:
Geralmente esses arquivo vem de um retorno chamado de remessa e retorno, alguns arquivos são o mesmo nome quando vem ao seu servidor, se utiliza o CURL para conectar-se ao servidor, então, recomendo a utilização de uma biblioteca para CURL a guzzlehttp.
Recomendo também criar sua estrura de recebimento com um padrão ano/mes/dia/* arquivos
Sempre recebendo os arquivos enviando de outro servidor em um diretório base.
EX: SEFAZ\ano\mes\dia\arquivos......
e você faz um insert no banco de dados com o caminho para recuperação de forma mais eficiente, caso contrário, poderia fazer uma listagem na pasta gerando uma estrutura organizada para você.
SEFAZ\
SEFAZ\ANO
SEFAZ\ANO\MES
SEFAZ\ANO\MES\DIAS
Sempre será esse padrão.
Comandos para base de conhecimento:
DirectoryIterator
<?php
$it = new DirectoryIterator(__DIR__);
foreach ($it as $fileinfo) {
if (!$fileinfo->isDot())
var_dump($fileinfo->getFilename());
}
Examplo **FilesystemIterator**:
<?php
$it = new FilesystemIterator(__DIR__);
foreach ($it as $fileinfo) {
echo $fileinfo->getFilename() . "\n";
}
Obrigado vou olhar este seu script
Não sei se é isso que procura, mas veja: filesystemiterator
No entanto ao meu entender deviria ter uma regra nos envios de forma a registrar tudo que é enviado.