Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nielsen Tomazini

Como listar apenas um tipo de arquivo?

Recommended Posts

Olá,Não trabalho com Linux, apenas trabalho com PHP, trabalho com desenvolvimento de páginas de internet.Estou com um problema num script que entra comandos do Linux, por isso, estou aqui pedindo ajuda.É o seguinte, tenho um script que busca colher informações de cada arquivo .php do meu website e então grava estas informações num banco de dados.O problema é que o comando que tenho lista todas os arquivos do site, e, hoje, tenho mais de 60.000 arquivos no site (com páginas .php e imagens). por isso, o servidor não roda tudo isso e para no meio do script, ou seja, ele começa a fazer o serviço mas não há memória suficiente para terminar.Pois bem, gostaria de saber que comando no Linux devo executar para:Ou listar apenas os arquivos .php,Ou listar apenas os arquivos dos diretórios e não dos subdiretórios - digo isto porque a estrutura do site está assim:pasta Alfadentro de Alfa: Matematica teste1.php teste2.php teste3.php ->imagem imagem1.jpg imagem2.jpg Portugues gramatica.php sintaxe.php ->imagens professora.gif cola.gifBem, o código que estou executando é o segunte: exec("ls -R $start_dir",$f_list); Neste caso, tenho ls para listar tudo de $start_dir, certo? E -R, é para entrar nas pastas e subpastas?Bem, se puderem me dizer qual o comando para pegar apenas os arquivos .php ou apenas as pastas e não as subpastas, puxa, meus problemas acabariam.Quero agradecer antecipadamente qualquer ajuda.Segue abaixo todo o bloco da função para pegar os arquivos:function get_dirlist($start_dir) { exec("ls -R $start_dir",$f_list); $dir_str = $start_dir; $filelist[0] = $start_dir; $i = 1; $extensao = substr($f_list, -3); if ($extensao == "php") { for ($count=0; $count<count($f_list); $count++) { if ($f_list[$count] == "") { continue; } if (substr($f_list[$count],strlen($f_list[$count])-1,1) == ":") { $dir_str = substr($f_list[$count],0,strlen($f_list[$count])-1); $filelist[$i] = $dir_str; $i++; } else { $file_str = "$dir_str/$f_list[$count]"; if (is_file($file_str)) { $filelist[$i] = $file_str; $i++; } } } return $filelist; }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.