Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá
estou usando um comando para listar o diretorio
"dir()"
ai tipo
mas fica tudo bagunçado as pastas com os arquivos
tipo, fica +- assim
.
..
123
123.php
123.txt
teste
teste_loja
fica +- assim
queria que ficasse tudo junto, pasta com pasta, arquivos com arquivos
tipo, pra ficar assim
.
..
123
teste
teste_loja
123.php
123.txt
pastas emcima e arquivos embaixo
não ajudou muito
sera que não tem algu do tipo
"order"
ou alguma coisa assim?
Hmmm... agora entendi xD
Não creio que tenha alguma função nativa do PHP para ordenar assim.
Mas você pode fazer isso na unha utilizando a função "is_dir()" do php.
Seria algo como isso:
<?php
define('PATH' , 'blogdolp/');
$dir = scandir(PATH);
foreach($dir as $file):
if (is_dir(PATH . $file)):
$pastas[] = $file;
else:
$arquivos[] = $file;
endif;
endforeach;
print_r($pastas);
print_r($arquivos);
?>
http://br.php.net/manual/pt_BR/function.is-dir.php
^^
Tenta com o glob:
$dir = array( 'dir' => array() , 'file' => array() );
foreach ( glob( '{.,}' , GLOB_BRACE ) as $file ){
$dir[ is_dir( $file ) ? 'dir' : 'file' ][] = $file;
}
echo implode( "\n" , array_merge( $dir[ 'dir' ] , $dir[ 'file' ] ) );
Para mim a saída foi:
>
.
..
.cache
.refactorings
.settings
application
docs
public
.buildpath
.htaccess
.project
application.xml
index.php
PHPDocConfig.ini
Em ordem alfabética, os diretórios primeiro e os arquivos depois.
valew
mas na onde que eu coloco o caminho nesse script pra ele listar os arquivos e pastas
$dir = array( 'dir' => array() , 'file' => array() );
foreach ( glob( '{.,}' , GLOB_BRACE ) as $file ){
$dir[ is_dir( $file ) ? 'dir' : 'file' ][] = $file;
}
echo implode( "\n" , array_merge( $dir[ 'dir' ] , $dir[ 'file' ] ) );>
mas na onde que eu coloco o caminho nesse script pra ele listar os arquivos e pastas
Pegando . dentro de /home/neto:
foreach ( glob( '/home/neto/.' ) as $file ) var_dump( $file );
Pegando *.php dentro de /var/www/html/lab:
foreach ( glob( '/var/www/html/lab/*.php' ) as $file ) var_dump( $file );
Pegando todos os JPG, PNG eGIF do diretório anterior (os padrões nesse caso são separados por vírgula):
foreach ( glob( '{../.jpg,../.png,../*.gif}' , GLOB_BRACE ) as $file ) var_dump( $file );
obrigado.
Isso ajuda deve ajudar http://br2.php.net/manual/pt_BR/function.scandir.php