Newsmade
PHP, no auge
Voltar

Funções para leitura de diretórios

Vou disponibilizar aqui alguns scripts para leitura de diretórios, sub-diretórios, arquivos, etc e algumas variantes que vejo que são bastante usadas.

Claro que há outras formas de fazer isso usando outras funções, mas acho que com essas fica melhor. Outras funções de referência:


Scandir - Para PHP;
Class.dir - PHP 3, PHP 4 ou PHP 5.


Neste post você vai encontrar como:


Abrir um diretório e mostrar os arquivos e sub-diretórios;
Abrir um diretório e mostrar somente os sub-diretórios;
Abrir um diretório e mostrar somente os sub-diretórios (sem o diretório “.”);
Abrir um diretório e mostrar somente os sub-diretórios (sem o diretório “..”);
Abrir um diretório e mostrar somente os sub-diretórios (sem os diretórios “.” e “..”);
Abrir um diretório e mostrar os arquivos;
Abrir um diretório e mostrar os arquivos com extensão “.jpg”;
Abrir um diretório e mostrar os arquivos em ordem alfabética;
Abrir um diretório e mostrar os arquivos e sub-diretórios (sem os diretórios “.” e “..”) em ordem alfabética;
Abrir um diretório e mostrar os arquivos e sub-diretórios (sem os diretórios “.” e “..”) em ordem alfabética e mostrar todos os arquivos e sub-diretórios dentro de cada sub-diretório, ou seja, mostrar toda a árvore.


Para testar os exemplos, use a chamada abaixo (caso esteja usando Windows e o diretório exista, claro!) no mesmo arquivo que está a função:
<?php
function diretorios($diretorio) {
//código da função
}
diretorios("c:php");
?>


Para testar o último exemplo, use:
[/code]
<?php
function diretorios($diretorio) {
//código da função
}
mostra(diretorios("c:php"));
?>

Abrir um diretório e mostrar os arquivos e sub-diretórios:
[code]
<?php
function diretorios($diretorio) {
if (is_dir($diretorio)) {
if ($dir = opendir($diretorio)) {
while(false !== ($arq = readdir($dir))) {
echo $arq . "<br />";
}
}
}
}
?>


Abrir um diretório e mostrar somente os sub-diretórios:
<?php
function diretorios($diretorio) {
if (is_dir($diretorio)) {
if ($dir = opendir($diretorio)) {
while(false !== ($arq = readdir($dir))) {
if (is_dir($diretorio . $arq)) {
echo $arq . "<br />";
}
}
}
}
}
?>


Abrir um diretório e mostrar somente os sub-diretórios (sem o diretório “.”):
<?php
function diretorios($diretorio) {
if (is_dir($diretorio)) {
if ($dir = opendir($diretorio)) {
while(false !== ($arq = readdir($dir))) {
if (is_dir($diretorio . $arq) && $arq != ".") {
echo $arq . "<br />";
}
}
}
}
}
?>


Abrir um diretório e mostrar somente os sub-diretórios (sem o diretório “..”):
<?php
function diretorios($diretorio) {
if (is_dir($diretorio)) {
if ($dir = opendir($diretorio)) {
while(false !== ($arq = readdir($dir))) {
if (is_dir($diretorio . $arq) && $arq != "..") {
echo $arq . "<br />";
}
}
}
}
}
?>


Abrir um diretório e mostrar somente os sub-diretórios (sem os diretórios “.” e “..”):
<?php
function diretorios($diretorio) {
if (is_dir($diretorio)) {
if ($dir = opendir($diretorio)) {
while(false !== ($arq = readdir($dir))) {
if (is_dir($diretorio . $arq) && $arq != "." && $arq != "..") {
echo $arq . "<br />";
}
}
}
}
}
?>


Abrir um diretório e mostrar os arquivos:
<?php
function diretorios($diretorio) {
if (is_dir($diretorio)) {
if ($dir = opendir($diretorio)) {
while(false !== ($arq = readdir($dir))) {
if (is_file($diretorio . $arq)) {
echo $arq . "<br />";
}
}
}
}
}
?>


Abrir um diretório e mostrar os arquivos com extensão “.jpg”:

<?php
function diretorios($diretorio) {
if (is_dir($diretorio)) {
if ($dir = opendir($diretorio)) {
while(false !== ($arq = readdir($dir))) {
if (is_file($diretorio . $arq) && pathinfo($arq, 4) == "jpg") {
echo $arq . "<br />";
}
}
}
}
}
?>


Abrir um diretório e mostrar os arquivos em ordem alfabética:

<?php
function diretorios($diretorio) {
$resultado = array();
if (is_dir($diretorio)) {
if ($dir = opendir($diretorio)) {
while(false !== ($arq = readdir($dir))) {
if (is_file($diretorio . $arq)) {
$resultado[strtolower($arq)] = $arq;
}
}
ksort($resultado);
foreach($resultado as $valor) {
echo $valor . "<br />";
}
}
}
}
?>


Abrir um diretório e mostrar os arquivos e sub-diretórios (sem os diretórios “.” e “..”) em ordem alfabética:

<?php
function diretorios($diretorio) {
$resultado['d'] = $resultado['a'] = array();
if (is_dir($diretorio)) {
if ($dir = opendir($diretorio)) {
while(false !== ($arq = readdir($dir))) {
if ($arq != '.' && $arq != '..') {
if (is_dir($diretorio . $arq)) {
$resultado['d'][strtolower($arq)] = $arq;
} else {
$resultado['a'][strtolower($arq)] = $arq;
}
}
}
ksort($resultado['d']);
ksort($resultado['a']);
foreach($resultado['d'] as $valor) {
echo $valor . "<br />";
}
foreach($resultado['a'] as $valor) {
echo $valor . "<br />";
}
}
}
}
?>


Abrir um diretório e mostrar os arquivos e sub-diretórios (sem os diretórios “.” e “..”) em ordem alfabética e mostrar todos os arquivos e sub-diretórios dentro de cada sub-diretório, ou seja, mostrar toda a árvore:

<?php
function diretorios($diretorio) {
$resultado['d'] = $resultado['a'] = array();
if (is_dir($diretorio)) {
if ($dir = opendir($diretorio)) {
while(false !== ($arq = readdir($dir))) {
if ($arq != '.' && $arq != '..') {
if (is_dir($diretorio . $arq)) {
$resultado['d'][strtolower($arq)] = diretorios($diretorio . $arq . DIRECTORY_SEPARATOR);
} else {
$resultado['a'][strtolower($arq)] = $arq;
}
}
}
}
}
ksort($resultado['d']);
ksort($resultado['a']);
return $resultado;
}
function mostra($array) {
foreach($array['d'] as $chave => $valor) {
echo $chave . "<br />";
if (is_array($valor)) {
mostra($valor);
}
}
foreach($array['a'] as $chave => $valor) {
echo $chave . "<br />";
}
}
?>



autor: xKuRt
Postado 21/05/2009 15:09 por Jeison Frasson

© 2002-2012 Newsmade - Quase todos os direitos reservados.