Jump to content


Photo

Como Listar Um Diretorio Em Order Por Nome


  • Faça o login para participar
10 replies to this topic

#1 H3NR!QU3

H3NR!QU3

    Progamador PHP!

  • Usuários
  • 1032 posts
  • Sexo:Não informado
  • Localidade:cuiaba MT
  • Interesses:programação... PHP,JAVA,C++ ,c,c# asp, asp.net e delph

Posted 11/09/2005, 00:17

aew pessoal alguem sabe listar as imagens de um diretorio por orderm por nome...


tipow eu sei listalas normal so q elas não vem em ordem vem todas baguçandas

veja:

<?
$pasta="imagens/";//nome da pasta
$abre = opendir($pasta); // abrindo a pasta
while ($res=readdir($abre)){// lendo o conteudo dela
$ext=explode(".",$res);//pegando a extensão 
echo ($ext[count($ext)-1]=="jpg") ? "<img src='$pasta$res'>" : ""; //imprimindo  a imagem se for jpg
}
?>


falow

Edição feita por: H3NR!QU3, 11/09/2005, 00:17.


#2 victorpfm

victorpfm

    Expert

  • Usuários
  • 566 posts
  • Sexo:Masculino

Posted 11/09/2005, 00:22

Usando a função glob(), você irá obter um array com as imagens do diretório.
Então é só usar a função sort() para ordenar.

#3 H3NR!QU3

H3NR!QU3

    Progamador PHP!

  • Usuários
  • 1032 posts
  • Sexo:Não informado
  • Localidade:cuiaba MT
  • Interesses:programação... PHP,JAVA,C++ ,c,c# asp, asp.net e delph

Posted 11/09/2005, 11:08

mais se eu usar explode eu num vou o obter umm array tbem?

#4 victorpfm

victorpfm

    Expert

  • Usuários
  • 566 posts
  • Sexo:Masculino

Posted 11/09/2005, 11:20

Vai, mas não um array com os arquivos do diretório.

#5 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 11/09/2005, 11:43

Bom, vou dá um exemplo.

- Abaixo eu procuro listar os arquivos {.php, .html}, caso existam no diretório aonde está o arquivo. E ordena de forma ascendente.

<?php

  // Diretório
  $dir = "./";
  
  // Verificando a existência
  if (is_dir($dir))
  {
      // Obtendo nome dos arquivos da(s) extensões especificadas
      $Arquivos = glob("{$dir}/*.{php, html}", GLOB_BRACE);
      
      // Verificando se houve resultado
      if (is_array($Arquivos))
      {
      
          // Ordenando de forma ascendente (ASC)
          sort($Arquivos);
      
          // Imprimindo o nome dos arquivos
          foreach ($Arquivos as $Imagem)
              print basename($Imagem) . "<br />";
      
      }

  }

?>


[]'s
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#6 Osmano

Osmano

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 11/09/2005, 14:25

Por ser GNU.

Veja.

<?php

// Sistema para Listar Diretórios e Arquivos
// GNU Public License - 2004-11-07 | 07/11/2004
// http://www.gnu.org/p...hy/free-sw.html
// Klaus Roberto de Paiva - klausphp@gmail.com

// Defina aqui o diretório a ser listado!
// Use definição relativa não absoluta!
// Certo: "../Pasta"
// Errado: "http://www.meusite.com.br/Pasta"
// Não coloque / no final da pasta!
define ("Diretorio", "..");

?>

<style type="text/css">

body {

font: 10pt verdana;

}

a:link, a:visited {

color: #000000;
text-decoration: none;

}

a:hover, a:active {

font-weight: bold;

}

</style>

<script language="javascript" type="text/javascript">

function expandirContrair (qual) {

var pasta = document.getElementById(qual);

if (pasta.style.display == "none") {

pasta.style.display = "";

}

else {

pasta.style.display = "none";

}

}

</script>

<?php

function exibeEstrutura ($pasta, $acima, $caminho, $nivel = 0) {

$arquivos = null;

$id = md5 (microtime());

$mostrar = ($nivel == 0) ? "" : " style=\"display: none;\"";

echo "";

if (!is_dir ($pasta)) :

echo "$pasta não é uma pasta válida e/ou acessível!";

endif;

chdir ($pasta);

$eval = dir ("./");

$atual = getcwd();

echo str_repeat ("&nbsp;", ($nivel * 5));

echo "<a href=\"java script:expandirContrair ('$id');\"><img src=\"pastas.gif\" border=\"0\" alt=\"\" width=\"17\" height=\"14\" align=\"absmiddle\" /> ";
echo ($nivel == 0) ? $atual : $pasta;
echo "</a><br /><div id=\"$id\"$mostrar>\n\n\n";

while (($itens = $eval->read()) !== false) :

if (($itens == ".") or ($itens == "..")) :

continue;

endif;

if (is_dir ($itens)) :

exibeEstrutura ($itens, $atual, $caminho . "/" . $itens, ($nivel + 1));

else :

$arquivos .= str_repeat ("&nbsp;", (($nivel + 1) * 5));

$extra = ($nivel != 0) ? $pasta . "/" : "";

$arquivos .= "$itens <a href=\"$caminho/$itens\"><img src=\"visualizar.gif\" border=\"0\" alt=\"\" title=\"Visualizar este arquivo!\" width=\"14\" height=\"14\" align=\"absmiddle\" /></a> <a href=\"apagar.php?source=" . base64_encode ($caminho . "/" . $itens) . "\"><img src=\"apagar.gif\" border=\"0\" alt=\"\" title=\"Apagar este arquivo!\" width=\"14\" height=\"14\" align=\"absmiddle\" /></a><br />\n";

endif;

endwhile;

chdir ($acima);

echo $arquivos;

echo "</div>\n\n";

}

exibeEstrutura (Diretorio, Diretorio, Diretorio);

?>

#7 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 12/09/2005, 09:12

<?
$caminho = '../banners';
$rep = opendir($caminho);
$arr_file = array();
while ($file = readdir($rep)) {
$tipo = filetype("$caminho/$file");
if($file != '..' && $file !='.' && $file !=''){
if (!is_dir($file)){
$arr_file[] = $file;
}
}
}
closedir($rep);
sort($arr_file);
foreach($arr_file as $valor) {
echo $valor."<br>";
}
?>
Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br

#8 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 12/09/2005, 09:20

<?
$caminho = '../banners';
$rep = opendir($caminho);
$arr_file = array();
while ($file = readdir($rep)) {
$tipo = filetype("$caminho/$file");
if($file != '..' && $file !='.' && $file !=''){
if (!is_dir($file)){
$arr_file[] = $file;
}
}
}
closedir($rep);
sort($arr_file);
foreach($arr_file as $valor) {
echo $valor."<br>";
}
?>

He He He ... este código comparado com o glob() + sort() chega à ser um absurdo ! (rs) :P

Até o manual vêm recomendando o uso do glob(), desde o PHP 4.3.0 ... :rolleyes:

[]’s :DAté mais

#9 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 12/09/2005, 10:51

<?
$caminho = '../banners';
$rep = opendir($caminho);
$arr_file = array();
while ($file = readdir($rep)) {
$tipo = filetype("$caminho/$file");
if($file != '..' && $file !='.' && $file !=''){
if (!is_dir($file)){
$arr_file[] = $file;
}
}
}
closedir($rep);
sort($arr_file);
foreach($arr_file as $valor) {
echo $valor."<br>";
}
?>

He He He ... este código comparado com o glob() + sort() chega à ser um absurdo ! (rs) :P

Até o manual vêm recomendando o uso do glob(), desde o PHP 4.3.0 ... :rolleyes:

[]’s :D

em alguns casos eu uso o glob, em alguns casos eu uso um codigo muito parecido com esse... Funciona, é auto-explicativo e nao precisa recorrer muito ao "FM" pra entender como funciona, hehehe

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#10 H3NR!QU3

H3NR!QU3

    Progamador PHP!

  • Usuários
  • 1032 posts
  • Sexo:Não informado
  • Localidade:cuiaba MT
  • Interesses:programação... PHP,JAVA,C++ ,c,c# asp, asp.net e delph

Posted 12/09/2005, 15:47

seguinte pessoal...

eu sakei como que é tudinho...

so que eu num to consgeuindo emplementar heim meu sistema...


sera que alguem podia me ajudar?

veja a pagina que eu preciso emplementar isso...





<?
if (strstr($pg,".")== TRUE){
$pg=ceil($pg);
$pg=$pg-1;
}
if (!$pg==0)
{
$cont=$pg * 12;
} else {
$cont=0;
}
?>
<? include("path.php");?>
<head>
<link rel="stylesheet" type="text/css" href="estilo.css">
</head>
<body bgcolor="#999999" text="#FF9900" link="#FF9900" vlink="#FF9900" alink="#FF9900" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table border="0" align="" cellpadding="0" cellspacing="0" bordercolor="#225894" bgcolor="#225894">
  <tr> 
    <td width="342" height="348" align="center" valign="top" bgcolor="#999999"> 
      <?
$handle = opendir($dir);
$ext = "jpg";
$indice = 0;
$ipp = 12;

while (false !== ($file = readdir($handle)))
{
   $pathdata = pathinfo($file);
   if (!is_dir($file) && ($pathdata["extension"] == strtolower($ext)) || ($pathdata["extension"] == strtoupper($ext)))
   {
       $imagens[$indice] = $file;
       $indice++;
   }
}

$pagina = 1;
if ($_GET['pg'])
   $pagina = $_GET['pg'];

$paginas = ceil(count($imagens) / $ipp);
$inicio = $pg * $ipp;
$thumb="imagemdim.php?imagem=";
$var1 = "&evento=$evento&data=$data&local=$local";

for ($i=$inicio; $i<($inicio+$ipp); $i++)
if($imagens[$i] != ""){ ?>
      <? $cont=$cont+1; ?>
      <a href="zoom.php?dir=<? echo "$dir";?><? echo $var1?>&pg=<? echo "$cont";?>" target="exibe_foto"> 
      </a> <a href="zoom.php?dir=<? echo "$dir";?><? echo $var1?>&pg=<? echo "$cont";?>" target="exibe_foto"><img src="<? echo "$thumb$dir$imagens[$i]"; ?>"  border="1"></a> 
      <? }?>
    </td>
  </tr>
  <tr> 
    <td width="342" align="center" valign="top" bgcolor="#999999"> <font color="#FFFFFF" size="2" face="verdana"> 
      <?
for($i=0; $i<$paginas; $i++){
$url = "?dir=$dir&pg=$i";
  if ($i==$pg) {
  echo " <b>".($i+1)."</b> ";
  } else {
  echo " <b><a href='$url'>".($i+1)."</a> </b>";
  }
} 
?>
      </font></td>
  </tr>
</table>
</body>


flaow pessoal...

se alguem poder me ajudar... como eu jah ajudei tanta gente auqi no forum.. ficaria mto grato (y)

Edição feita por: H3NR!QU3, 12/09/2005, 16:04.


#11 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 12/09/2005, 17:45

se vc nao conseguir implementar o que o phpman sugeriu, faça uma busca por glob.

a resposta já foi dada, é só mudar "os mosquitos".

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq