Ir para conteúdo

POWERED BY:

Arquivado

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

Josuel S.H

[Resolvido] comando dir ordem de pastas e arquivos

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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' ] ) );

??

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 );

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.