Ir para conteúdo

POWERED BY:

Arquivado

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

SHWE12

Exibir Pastas / Arquivos dentro do FTP

Recommended Posts

Boa Tarde Galera

Estou listando meus arquivos do FTP dentro da minha página.

Só que ele está listando tudo junto, pastas e arquivos.

Como eu faria para separar as pastas e os arquivos para ficar algo mais claro

 

Está aparecendo assim:

 

Conteúdo do Diretório /Print:

.

..

Anúncio de revista 21x30 cm Print Express.jpg

copyright

Dia da mulher Santa Casa de Birigui

FOLDER REDEPAS - 2008.cdr

pega meu messenger ae.txt

Peças 09.12.08

Via Brasil

<?
         // definindo o tempo limite da aplicação o time default é de 30 segundos você setando para 0  fica um tempo indefinido
		set_time_limit(0);
		// variavel que vai armazenar o nome do site
		$ftp_server = 'ftp.printexpress.ensite.com.br';
		//efetua a conexão
		$conn_id = ftp_connect($ftp_server);
		//caso ocorra algum erro de conexao
		if(!$conn_id)
		{
		 echo "nao foi possivel conectar ao servidor de ftp dp site ".$ftp;
		 exit;
		}
		else
		{
		 //faz a autenticação do usuario 
		 // nessa parte sera necessário informar o login e senha
		 $login_result = ftp_login($conn_id, $ftp_login, $ftp_senha);
		 if(!$login_result)
		 {
		  echo "erro ao efetuar login";
		  exit;
		 }
		 else
		 {

		  //vejamos agora  em que diretorio estamos com a função ftp_pwd
		  print '<b>';
		  echo "O diretório atual agora é: " . ftp_pwd($conn_id) . "";
		  print '</b>';
		  print '<br><br><br>';
		  //hora de listar o conteudo(arquivos e diretorios) do  diretorio atual
		  $buff = ftp_nlist($conn_id, ftp_pwd($conn_id));
		  //caso de erro
		  if(!$buff)
		  {
		   echo "Erro ao listar conteudo do diretorio";
		   exit;
		  }
		  else
		  {
		   print '<b>';
		   echo "Conteúdo do Diretório ".ftp_pwd($conn_id).":";
		   print '</b>';
		   print '<br>';
		   //o nome dos arquivos bem como seus diretorios sao devolvidos em um vetor
		   // imprimindo-os


		   ?>
              <table width="95%" border="0" cellspacing="0" cellpadding="0">
              <?
		   $quantidade = count($buff);
		   for($i=0;$i<$quantidade;$i++)
		   {
		   ?>
                <tr>
                <td width="5%"> </td>
                <td width="5%" class="texto_principal"> </td>
                <td width="5%" align="center"></td>
                <td width="85%">
			 <? 
		   	 echo $buff[$i]."";
			 echo '<br>';
			 ?>
			 </td>
                </tr>
                <?
		   }
		   ?>
              </table>
		<?	

		  }

		 }
		}
		//fechando a conexao FTP
		ftp_close($conn_id);

		   //supondo que eu desejo fazer 
		   ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu apaguei o codigo, o codigo da listagem está la em cima, eu tentei incluir um foreach daquele que você me passou, no lugar do for do meu codigo, mas nao retornou nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta ai o codigo, mas nao está retornando nada, nao sei onde está o erro..

<?
         	// definindo o tempo limite da aplicação o time default é de 30 segundos você setando para 0  fica um tempo indefinido
		set_time_limit(0);
		// variavel que vai armazenar o nome do site
		$ftp_server = 'ftp.printexpress.ensite.com.br';
		//efetua a conexão
		$conn_id = ftp_connect($ftp_server);
		//caso ocorra algum erro de conexao
		if(!$conn_id)
		{
		 	echo "nao foi possivel conectar ao servidor de ftp dp site ".$ftp;
		 	exit;
		}
		else
		{
		 	//faz a autenticação do usuario 
		 	// nessa parte sera necessário informar o login e senha
		 	$login_result = ftp_login($conn_id, $ftp_login, $ftp_senha);
		 	if(!$login_result)
		 	{
		  		echo "erro ao efetuar login";
		  		exit;
		 	}
		 	else
		 	{
				//vejamos agora  em que diretorio estamos com a função ftp_pwd
		  		print '<b>';
		  		echo "O diretório atual agora é: " . ftp_pwd($conn_id) . "";
		  		print '</b>';
		  		print '<br><br><br>';
		  		//hora de listar o conteudo(arquivos e diretorios) do  diretorio atual
		  		$buff = ftp_nlist($conn_id, ftp_pwd($conn_id));
		  		//caso de erro
		  		if(!$buff)
		  		{
		   			echo "Erro ao listar conteudo do diretorio";
		   			exit;
		  		}
		  		else
		  		{
		   			print '<b>';
		   			echo "Conteúdo do Diretório ".ftp_pwd($conn_id).":";
		   			print '</b>';
		   			print '<br>';
		   			//o nome dos arquivos bem como seus diretorios sao devolvidos em um vetor
		   			// imprimindo-os
		   			[b]$dir = array( 'dir' => array() , 'file' => array() );
		   			foreach ( glob( '{.ftp.printexpress.ensite.com.br}' , GLOB_BRACE ) as $file )
		   			{    
		   				$dir[ is_dir( $file ) ? 'dir' : 'file' ][] = $file;
					}
					echo implode( "\n" , array_merge( $dir[ 'dir' ] , $dir[ 'file' ] ) );[/b]						
				}
			}
		}
		//fechando a conexao FTP
		ftp_close($conn_id);
		//supondo que eu desejo fazer 
		?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema está aqui nessa parte:

 

//o nome dos arquivos bem como seus diretorios sao devolvidos em um vetor
// imprimindo-os
$dir = array( 'dir' => array() , 'file' => array() );
foreach ( glob( '{.ftp.printexpress.ensite.com.br}' , 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

Opa! Malz a demora xD

O problema aparenta estar na função glob.

Em pattern você adicionou o endereço FTP, então não vai sair nenhum casamento ali! xD

Troque a linha por isso (como estava no endereço q te mandei):

foreach ( glob( '{.*,*}' , GLOB_BRACE ) as $file ){
E no inicio do script coloque:

<?php
error_reporting(E_ALL);
(...)
Para ver se tem algum erro que esta sendo ocultado (retire-a depois da parte de desenvolvimento)

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.