Ir para conteúdo

POWERED BY:

Arquivado

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

campossalex

Ordem alfabética arquivos de um diretório

Recommended Posts

Ae vai o jeito mais fácil de classificar arquivos de um diretorio em ordem alfabética:

 

 

PHP

[*]

[*]<?

[*]

[*] echo "<select name=\"form\">";

[*] $dirname = 'coloca_o_caminho_da_pasta_aqui';

[*]

[*]

[*]  $data_dir_obj = dir ($dirname);

[*]  $selected[$this->Conf->Current_file] = "SELECTED";

[*]  while ($my_files[] = $data_dir_obj->read());

[*]  sort($my_files);

[*]  while ($file=next($my_files)) {

[*] if (ereg("^\.{1,2}$", $file)) {

[*]  continue;

[*] }

[*] $my_fullname = "{$data_dir_obj->path}/$file";

[*] $ret .= "<OPTION VALUE='$file'>$file</OPTION>\n";

[*]  }

[*]  $data_dir_obj->close();

[*]

[*]

[*] echo $ret;

[*] echo "</select>";

[*]

[*]?>

[*]

 

Qualquer duvida, manda um private pra mim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com problemas justamente pra ordenar os arquivos desse sistema de busca (de arquivo txt) em ordem alfabetica!

 

index.php

<?	  // Variável que quarda	  // a palavra a ser buscada	  $texto = $_POST["texto"];	  //Definindo Variáveis	  /*	  settype($texto,'string');	  settype($id,'string');	  settype($arquivo,'string');	  settype($conteudo,'string');	  settype($sentinela,'integer');	  */	  include("prof.php");	  	  // Variável que guarda	  // o número de arquivos	  // contidos no array	  $contador = count($arquivo2);	  // Gera o loop exibindo	  // todos os arquivos em	  // que foram positiva a pesquisa	  if( $texto != "" ) {		 for( $i=0; $i < $contador; $i++ ) {			$arquivo  = "$arquivo2[$i]";			$arquivoB = "$arquivo3[$i]";			$id = fopen( $arquivo, "r" );			$conteudo = fread( $id, filesize( $arquivo ) );			// Apenas um truque para que alguns			// caracteres não dê erro			if( $texto == "*" || $texto == "?" || $texto == "+" ) {			   $texto = "\$texto";			}			if( $texto == "[" || $texto == "(" ) {			   $texto = "çç{%ÇÇÇ";			}			// Analiza a palavra inserida, procura			// em todos os arquivos colocados no array			// e retorna o valor	   			if(eregi( $texto, $conteudo ) ) {				echo "<a href=mailto:\"" . $arquivo . "\">"  . eregi_replace( $texto , "<font size=2 face=Arial><b>" . $texto . "</b></font>", "<font size=2 face=Arial>". $arquivoB . "</font>") . "</a><br>";									  $sentinela = "1"; 			}		 }		 // Caso a palavra não exista, a		 // variável não assume valor algum		 // e é impressa a mensagem abaixo		 if( !$sentinela ) {			echo "<font size=2 face=Arial align=\"center\">Esse profissional não foi encontrado em nosso cadastrado!</font>";		 }	  }	?>
Prof.php

<?phpif(isset($_POST['texto'])){$dir = "./";$dh = opendir($dir);$x=0;   while (false !== ($filename = readdir($dh))){	  if (substr($filename,-4) == ".txt") {		$lines=file($filename);		$arquivo2[$x]= $filename;		$arquivo3[$x]= $lines[0];		$x++;	  }   }}?>
Os arquivos estao vindo desordenados apos a busca! Alguem poderia me ajudar???

 

Desde ja agradeco, http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

você coloca para receber o resultado em um array, certo? Aí você ordena o array usando a função natcasesort do PHP.Tipo, você recebe o resultado assim:$variavel = array(1=>macaco,2=>gorila,3=>chimpanze);Aí vocÊ aplica a função: $varialvelM = natcasesort($variavel);O resultado estará em ordem: 1=>chimpanze,2=>gorila,3=macacoQualquer dúvida, pode perguntar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você coloca para receber o resultado em um array, certo? Aí você ordena o array usando a função natcasesort do PHP.Tipo, você recebe o resultado assim:$variavel = array(1=>macaco,2=>gorila,3=>chimpanze);Aí vocÊ aplica a função: $varialvelM = natcasesort($variavel);O resultado estará em ordem: 1=>chimpanze,2=>gorila,3=macacoQualquer dúvida, pode perguntar.

klawdyo,Ja deu pra ver que sou iniciante em PHP e que peguei esse codigo livre...No codigo que inseri acima as variaveis sao as seguintes:$arquivo = "$arquivo2[$i]"; (guarda nome do arquivo .txt que servira como link para e-mail)$arquivoB = "$arquivo3[$i]"; (guarda o conteudo da primeira linha do .txt)Fiz o seguinte para listar o conteudo da primeira linha do txt em ordem alfabetica...$varquivoC = natcasesort($arquivoB);Porem quando coloco para mostrar o conteudo nao esta aparecendo!!echo "<a href=mailto:\"" . $arquivo . "\">" . eregi_replace( $texto , "<font size=2 face=Arial><b>" . $texto . "</b></font>", "<font size=2 face=Arial>". $arquivoC . "</font>") . "</a><br>";O que pode estar acontecendo?Desde ja agradeco, http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.