Jump to content


Photo

Listar Arquivos Como Links, Abrir Em Nova Janela (Ajuda)


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

#1 GiSP

GiSP

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino

Posted 17/05/2011, 20:54

Boa noite pessoal, estou com uma dúvida e gostaria da ajuda dos mais experientes se possível.
Eu tenho um diretório com vários arquivos, mas quero listá-los, mas mostrando apenas os que possuem a extensão ".txt" por exemplo.
Até aí pesquisei bastante e encontrei um código que consegue fazer isto sem problemas.
Abaixo o script lista os arquivos, esconde os que possuem outras extensões e exibe apenas os que tem extensão ".txt" como eu queria e exibe eles como links:

<?
// Define um array para armazenar os arquivos
$files = array();

// Diretório atual
$d = dir('.');

// Percorre todos os arquivos
while(false !== ($file = $d->read())){
// Se o arquivo não é este arquivo, e não começa com "." ou "~"
// e não termina em LCK, então guarde-o para exibição futura.
if(($file{0} != '.') && ($file{0} != '~') &&
(substr($file, -3) != 'LCK') && (substr($file, -3) != 'php') && (substr($file, -3) != 'jpg') &&
(substr($file, -3) != 'png') && (substr($file, -3) != 'gif') &&
($file != basename($_SERVER['PHP_SELF'])) ) {
// Guarda o nome do arquivo e dados completos de uma chamada
// à stat()
$files[$file] = stat($file);
}
}

// Fecha o diretório
$d->close();

// Agora vamos exibir o resultado em uma tabela
echo '<style>td { padding-right: 10px; }</style>';
echo '<table><caption>Conteúdo deste diretório:</caption>';

// Ordenar os arquivos em ordem alfabética
ksort($files);

// Definir o horário brasileiro:
date_default_timezone_set('Brazil/East');

// Percorremos os arquivos, exibindo uma nova linha na tabela
// para cada um deles.

foreach ($files as $name => $stats) {
//$name = preg_replace('/\.[^.]*$/', '', $name); (aqui tentei fazer com que o arquivo aparecesse sem a extensão, funcionou, mas se clicar no link depois, não encontra nada)
// Inicia a linha e exibe um link com o nome do arquivo
echo "<tr><td><a href=\"{$name}\">{$name}</a></td>\n";

// Uma célula com o tamanho do arquivo
echo "<td align='right'>{$stats['size']}</td>\n";
// Uma coluna com a data de criação do arquivo
echo '<td>', date('d/m/Y h:ia', $stats['mtime']), "</td></tr>\n";
}

echo '</table>';
?>


Daí em diante começa o meu problema!
O código exibe os arquivos que eu quero como links, mas mostra a extensão e eu queria que não mostrasse, deixando apenas o nome do arquivo.
Onde eu comentei em vermelho eu tentei fazer com que não mostre a extensão e deu certo, mas quando você clica no link, dá erro pois como o link criado é sem extensão nenhuma, não existe no servidor e aí dá uma página de erro.
O que eu queria conseguir fazer é o seguinte:

Listar os arquivos, somente com as extensões que eu quero - isso já deu certo

Listar os arquivos e exibir em forma de links - isso já deu certo

Listar os arquivos, escondendo a extensão, deixando só o nome do arquivo - isso não deu certo ainda

Exibir o arquivo, sem a extensão, em forma de link e abrindo em uma nova janela quando for clicado isso não deu certo ainda

Esta seria a primeira parte.

Conseguindo fazer isto, eu gostaria da ajuda de vocês para o seguinte:

Os arquivos que vão aparecer na listagem, são todos ".txt".

Com vários campos de texto em cada um deles.

Então, eu queria fazer com que ao clicar no link gerado, a nova página que abrisse, pegasse os dados deste txt que foi clicado, mas exibisse os dados dele por exemplo, da 10ª linha em diante.
Sei que da pra fazer isso mas não sei como fazer.

Então é isso se alguém puder dar uma forcinha nisso eu fico agradecida.

Edição feita por: GiSP, 17/05/2011, 20:54.


#2 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 17/05/2011, 23:29

Para exibir sem a extensão tenta assim:

foreach ($files as $name => $stats) {
$name_link = $name; 
$name = preg_replace('/\.[^.]*$/', '', $name);
// Inicia a linha e exibe um link com o nome do arquivo
echo "<tr><td><a href=\"{$name_link}\">{$name}</a></td>\n";
// Uma célula com o tamanho do arquivo
echo "<td align='right'>{$stats['size']}</td>\n";
// Uma coluna com a data de criação do arquivo
echo '<td>', date('d/m/Y h:ia', $stats['mtime']), "</td></tr>\n";
}


Sobre abrir o arquivo faz o seguinte:

leitura de arquivo:
<?php
	$fp = file($_GET['arquivo']);
	
	$linha = 9;//Apartir da linha 10 (Sempre linha desejada - 1);
	
	for( $i = $linha ; $i  <sizeof($fp); $i++){
		echo $fp[$i]."<br/>";
	}
?>

Link para redirecionar para á página
echo "<tr><td><a href=\"./leituraarquivo.php?arquivo={$name_link}\" target='new'>{$name}</a></td>\n";

Acho que isso vai te ajudar...

(y)??

#3 Diego Bezerra

Diego Bezerra

    Diego Bezerra

  • Moderadores
  • 938 posts
  • Sexo:Masculino
  • Localidade:Amazonas
  • Interesses:Iniciando no C# com MSSQL.

Posted 18/05/2011, 09:27

eu tenho este codigo um codigo eu usava ele para exibir imagens de um diretorio

<?php
$config['size'] = 150;
$config['imagequality'] = 100;
$config['rows'] = 2;
$config['cols'] = 3;
$config['maxShow'] = 10;
$config['fulls'] = "photos/";
$config['thumbs'] = "thumbs/";
function PrintArquivo(){
	global $config;
	if (!file_exists($config['fulls'])) { 
		Oops("O Diretorio <b>$config[fulls]</b> não existe .");
	}
	if (!file_exists($config['thumbs'])) { 
		if (!@mkdir($config['thumbs'], 0755)) {
			Oops("OPS ocorreu algum erro.");
		}
	}

   $imagelist = GetFileList($config['fulls']);
	$config['start'] = ($config['page']*$config['cols']*$config['rows']);
	$config['max'] = ( ($config['page']*$config['cols']*$config['rows']) + ($config['cols']*$config['rows']) );
	if($config['max'] > count($imagelist)){$config['max']=count($imagelist);}
	if($config['start'] > count($imagelist)){$config['start']=0;}
	echo '<table border="0" cellpadding="0" cellspacing="0" align="center" class="gallery">';
	echo "<tr>\n<td colspan=\"$config[cols]\" class=\"entries\">";
	if ($config['max'] == "0"){echo "Exibindo <b>0 - 0</b> of <b>0</b></td></tr>\n";}
	else{echo "Exibindo  <b>".($config['start']+1)." - $config[max]</b> de <b>".count($imagelist)."</b> total</td>\n</tr>\n\n";}
	$column_counter = 1;
	echo "<tr>\n";
	for($i=$config['start']; $i<$config['max']; $i++){
		$imagelist[$i] = rawurlencode($imagelist[$i]);

	echo '<td>';
			echo '<a href="'. $config['fulls'].$imagelist[$i] .'" title="'. $imagelist[$i] .'" target="_blank">'; 
			echo '<img src="'. $config['thumbs'].$imagelist[$i] .'" alt="'. $imagelist[$i] .'">';
			echo '</a>';
		echo '</td>'."\n";
		if(($column_counter == $config['cols']) && ($i+1 != $config['max'])){
			echo "</tr>\n\n<tr><td colspan=\"$config[cols]\" class=\"spacer\"></td></tr>\n\n<tr>\n";
			$column_counter=0;
		}
		$column_counter++;
	}
	if($config['start'] == $config['max']){
		echo "<td colspan=\"$config[cols]\" class=\"entries\">N&atilde;o encontramos nada</td>\n";
	}
	elseif($column_counter != $config['cols']+1){
		echo "<td colspan=\"".($config['cols']-$column_counter+1)."\">&nbsp;</td>\n";
	}
	echo "</tr>\n\n";
	echo "<tr>\n<td colspan=\"$config[cols]\" class=\"pagenumbers\">\n";
		GetPageNumbers(count($imagelist));
	echo "</td>\n</tr>\n\n";
	echo "</td></tr></table>\n";

}
function GetFileList($dirname="."){
	global $config;
	$list = array(); 

	if ($handle = opendir($dirname)) {
		while (false !== ($file = readdir($handle))) {
			//aqui vc add o tipo de arquivo que vc quer exibir
			if (preg_match("/\.(jpe?g|gif|png|txt|zip)$/i",$file)) { 
				$list[] = $file;
			} 
		}
		closedir($handle); 
	}
	sort($list);

	return $list;
}

function GetPageNumbers($entries) {
	global $config;
	$prev = "&laquo;&ensp;Anterior";
	$next = "&ensp;Proxima;";
	$config['totalPages']=Ceil(($entries)/($config['cols']*$config['rows']));
	$start=0;
	$end=$config['totalPages']-1; 
	if($config['maxShow'] < $config['page'] || (($config['cols']*$config['rows']*$config['maxShow'])< $entries) ){
		if($config['page'] >= ($config['maxShow']+1) && $config['page'] < $end-$config['maxShow']){ $start = $config['page']-$config['maxShow'];}
		elseif($end < $config['page']+$config['maxShow']+1 && $config['totalPages']-1 >= $config['maxShow']*2+1){$start = $config['totalPages']-1-$config['maxShow']*2;}
		else{$start=0;}
		if( $config['page']+$config['maxShow']+1 > $config['totalPages']-1 ){$end = $entries/($config['cols']*$config['rows']);}
		elseif($start == 0 && $end > $config['maxShow']*2){$end = $config['maxShow']*2;}
		elseif($start == 0 && $config['totalPages'] <= $config['maxShow']*2){$end = $config['totalPages']-1;}
		else{$end = ($config['page']+$config['maxShow']);} //end = page+cutoff+1
	}
	echo "Pagina ($config[totalPages]): \n";
	if(($config['page']-1) >= 0){echo "<a href=\"$_SERVER[SCRIPT_NAME]?page=".($config['page']-1)."\">$prev</a>\n";}
	else{echo "$prev\n";}
	if($start > 0){echo " ... ";}
	else{echo " - ";}
	for($i=$start; $i<=$end ; $i++){
		if($config['page']==$i){echo "[".($i+1)."] \n";}
		else{echo "<a href=\"$_SERVER[SCRIPT_NAME]?page=$i\">".($i+1)."</a>\n";}
	}
	if(Ceil($end) < $config['totalPages']-1){echo " ... ";}
	else{echo " - ";}
	if(($config['page']+1) <= $config['totalPages']-1){echo "<a href=\"$_SERVER[SCRIPT_NAME]?page=".($config['page']+1)."\">$next</a>\n";}
	else{echo "$next\n";}

}
function Oops($msg) {
?>
<div style="width:450px;">
	<h3 style="margin:0px;">Error</h3>
	<?php echo $msg; ?>

	<hr style="height:1px;width:80%">
	Please hit the <a href="javaScript:history.back();"><b>back button</b></a> on your browser to try again.
</div>
<?php
exit;
}#-#Oops()


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<title> Gerenciador de Arquivos </title>

<style type="text/css">

/* overall gallery table */
table.gallery{
	border-collapse: collapse;
	}

/* images in the gallery */
table.gallery img {
	border:0px;
	}

/* table cells in gallery */
table.gallery td {
	border:1px black solid;
	font-size:8pt;
	font-family:verdana;
	}

/*  "Showing results X - Y of Z entries" entry row */
table.gallery td.entries {
	text-align:right;
	padding:3px;
	}

/* spacer between each row of images */
table.gallery td.spacer {
	background-color:#E2E2E2;
	height:16px;
	}

/*  "Page (5): <<Prev  - [1] 2 3 4 5  - Next>>" pagenumber */
table.gallery td.pagenumbers {
	text-align:center;
	padding:3px;
	font-weight:bold;
	}

/* page number links */
table.gallery td.pagenumbers a {
	text-decoration:none;
	}

/* page number links:hover */
table.gallery td.pagenumbers a:hover {
	color:#3399FF;
	}

</style>

</head>
<body>


<h3 style="text-align:center;">Gerenciador de Arquivos</h3>
<div style="text-align:center;font-style:italic;">(Click para abrir o arquivo)</div>

<?php

// do not change any of these. used for internal purposes
$config['start']=0;
$config['max']=0;
$config['page']=isset($_GET['page'])?$_GET['page']:"0";

//#############################################
// print out the page with all the thumbnails
PrintArquivo();
//#############################################

?>


</body>
</html>

ja ta adpitado para exibir arquivo .txt

Edição feita por: Diego Bezerra, 18/05/2011, 09:36.

Att.
Diego Bezerra
Agência Kernel - em Breve
Email/msn: diegobezerra@outlook.com
Facebook

#4 GiSP

GiSP

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino

Posted 18/05/2011, 16:46

Oi kleryson, funcionou direitinho inclusive o que eu queria da página de leitura do arquivo, exatamente o que eu fiquei dias tentando descobrir e vc fez isso em poucos minutinhos, sou sua fã agora, muito obrigada mesmo! :aplauder:

Oi Diego Bezerra, vou testar seu código pois me parece que será útil no meu código em outra parte tb, muito obrigada pela ajuda.

Sou iniciante em php, mas estou pesquisando bastante pra conseguir fazer as coisas que quero aqui, que pra mim ainda parecem muito complicadas pois não consegui ainda pegar o jeito de tudo, mas com ajuda de pessoas prestativas como vcs, com certeza sei que vou conseguir.

Estou terminando de aprontar este código do meu jeito aqui e depois vou postar aqui pra vcs avaliarem se ficou bom, pode ser?

Agora eu estou tentando pesquisar pra criar uma área de login, achei bastante coisa mas não consegui entender como faço uma página de login assim:

Página de Login pra diretórios diferentes com vários usuários usando sessions.

Tipo assim, o usuário XXX ao se logar corretamente, é direcionado pra uma página onde ele vai ver as coisas que eu quero que ele veja por exemplo, dentro do diretório meuexemplo1, o usuário YYY ao se logar vai pra outra página dentro do diretório meuxemplo2 e assim por diante.

Então, eu pesquisei e achei várias coisas mas nada parecido com isso, mas sei que tem como fazer, só não estou achando como ainda, se alguém puder dar uma dica fico agradecida novamente.

Bjinhos

#5 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 18/05/2011, 18:09

Gisp

Os diretório meuexemplo1 e meuexemplo2 são fixos para esses usuários??

Pois se forem você pode armazenar no banco de dados para qual diretório eles devem ser redirecionado e ai faz o seguinte:

<?php
    header("Location ./$diretorio/");
?>

Maiores informações sobre Session:
http://www.php.net/m...ook.session.php
http://www.php.net/m...tion.header.php

Edição feita por: kleryson, 18/05/2011, 18:11.


#6 GiSP

GiSP

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino

Posted 20/05/2011, 01:04

Oi pessoal!

Muito obrigada pela ajuda!

Meu código ficou assim:

lista_arquivos.php
// Define um array para armazenar os arquivos
$files = array();

// Diretório atual
$d = dir('.');

// Percorre todos os arquivos
while(false !== ($file = $d->read())){
  // Se o arquivo não é este arquivo, e não começa com "." ou "~"
  // e não termina em LCK, então guarde-o para exibição futura.
  
  if(($file{0} != '.') && ($file{0} != '~') &&
    (substr($file, -3) != 'LCK') && (substr($file, -3) != 'php') && (substr($file, -3) != 'jpg') &&
	(substr($file, -3) != 'png') && (substr($file, -3) != 'gif') && (substr($file, -3) != 'htm') &&
	(substr($file, -3) != 'html') &&
       ($file != basename($_SERVER['PHP_SELF']))    ) {
    // Guarda o nome do arquivo e dados completos de uma chamada
	// à stat()
	$files[$file] = stat($file);
  }
}

// Fecha o diretório
$d->close();

// Agora vamos exibir o resultado em uma tabela
echo '<style>td { padding-right: 10px; }</style>';
echo '<table width="131" border="0" bordercolor="#99CCFF"><tr>
      <img border="0" src="resulta.gif" width="131" height="29"></td>
    </tr>';

// Ordenar os arquivos em ordem alfabética
ksort($files);

// Definir o horário brasileiro:
date_default_timezone_set('Brazil/East');

// Percorremos os arquivos, exibindo uma nova linha na tabela
// para cada um deles.
foreach ($files as $name => $stats) {
$name_link = $name; 
$name = preg_replace('/\.[^.]*$/', '', $name);

// Inicia a linha e exibe um link com o nome do arquivo
echo "<tr><td width=\"131\" height=\"21\" bgcolor=\"#E3E8EC\">
<p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\">
<font face=\"tahoma\" size=\"2\">
<img border=\"0\" src=\"icone2.gif\" width=\"16\" height=\"16\">&nbsp;&nbsp;
<a href=\"./leitura_arquivos.php?arquivo={$name_link}\" target='I2'>{$name}</a>
</font></td></tr>\n";

// Uma célula com o tamanho do arquivo
echo "<td align='right'>{$stats['size']}</td>\n";
// Uma coluna com a data de criação do arquivo
echo '<td>', date('d/m/Y h:ia', $stats['mtime']), "</td></tr>\n";
}
echo '</table>';

leitura_arquivos.php
<?
        $fp = file($_GET['arquivo']);
        
        $linha = 9;//Apartir da linha 10 (Sempre linha desejada - 1);
        include 'header.php';
  echo '<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="800" id="AutoNumber1"><tr><td width="379" height="70">
<p align="center"><b><font face="Tahoma" size="4">Meus Textos</font></b></p><br><pre>';

        for( $i = $linha ; $i  <sizeof($fp); $i++){
                echo $fp[$i]."<br/>";

        }
echo '<center><a href="#" onclick="window.print();">
<img border="0" src="print1.gif" width="43" height="40"></a></center></br>';

echo "</pre></td></tr></table></center></div>";
?>

Ficou bem legal e funcionando como eu queria, só que ao invés de abrir numa nova janela, optei por abrir em um iframe pra faciltar a leitura na mesma página, então eu criei um menu onde exibe os arquivos listados de um lado e ao ser clicado o link, abre no frame e pode ler o conteúdo do arquivo sem ter que ir para uma nova janela e coloquei uma imagenzinha pra imprimir o texto se quiser também. :D

Aí ficou uma dúvida, seria possível abrir este link num popup?

Bom, agora eu queria uma ajudinha pra saber como faço pra incluir ao lado de cada arquivo listado, um botãozinho pra deletar o arquivo se eu quiser pela própria página.

Eu pesquisei e tentei usar a função unlink mas não consegui fazer funcionar.

Então minha idéia é, ou ao lado do link gerado colocar um botãozinho pra deletar o arquivo, ou aproveitar o código de listar arquivos pra uma nova página, onde ele listaria tudo, mas ao invés de ser dentro de uma tabela, seriam lado a lado e com este botãozinho que permitisse deletar o arquivo.

Fiz uns testes aqui com esta função unlink mas não deu certo, será que tem algum outro jeito de fazer isto?

Outra idéia que eu tive mas não consegui foi criar alguma função que delete os arquivos automaticamente depois de um tempo, sei lá, por exemplo, depois de 20 dias, todos os arquivos dentro da pasta são deletados ou arquivos com 20 dias de criação, tanto faz, isso seria pra evitar acumular textinhos de recados apenas que vão acabar sendo listados.

Ah, esqueci de falar, este código eu estou fazendo pra exibir os textos que escrevo com mais algumas amigas, então, a idéia é que cada uma envie seu texto feito no bloco de notas mesmo pra facilitar, aí ele fica disponível nesta página que lista os arquivos e nós podemos ler, trocar idéias pra melhorar, etc e a idéia do botãozinho pra deletar é pra podermos deletar caso envie errado ou caso já tenha sido lido.
Por isso, a idéia seria ou criar este botãozinho que permita deletar ou alguma função que delete os arquivos mais antigos depois de um tempo.

Se algum amiguinho aqui puder dar uma luz eu fico agradecida, bjinhos! ;)

Edição feita por: GiSP, 20/05/2011, 01:05.


#7 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 20/05/2011, 08:23

a função é essa mesma...
unlink

Como utilizar...

index.php
echo "<a href='delete.php?arquivo={$name_link}'>Delete</a>

delete.php
<?php
   $arquivo = $_GET['arquivo'];

   if ( file_exists($arquivo){
       unlink($arquivo);
   }else{
     //Se o arquivo não existir ele imprime o que você tentou deletar para conferir
      echo "arquivo inexistente: ".$arquivo;
   }
?>


Para abrir em pop-up

<script language='javascript'>
     function abrirpopup(URL){
         window.open( URL ,'leitura','fullscreen=no,menubar=no,location=no,width=500,height=300');
     }
</script>

<?php
    echo "<a href='javascript:abrirpopup(\"./leitura_arquivos.php?arquivo={$name_link}\");'>{$name}</a>"
?>


links:

http://www.php.net/m...file-exists.php
http://www.php.net/m...tion.unlink.php

http://www.w3schools...et_win_open.asp

(y)??

#8 GiSP

GiSP

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino

Posted 20/05/2011, 16:00

Oi Klerison, a parte do popup funcionou bonitinho!

Mas a parte do delete não funciona, da esse erro:

Parse error: parse error in C:\xampp\htdocs\meuexemplo\delete.php on line 4

Exibe certinho, quando vc passa o mouse em cima, mostra que está pegando direitinho, mas quando clica pra deletar, aparece esse erro acima:

http://localhost/meuexemplo/delete.php?arquivo=meuteste01.txt

E no código parece estar tudo certinho, oq pode ser?

Edição feita por: GiSP, 20/05/2011, 16:07.


#9 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 23/05/2011, 09:21

Ok...

Faz o seguinte...

delete.php
<?php
   $arquivo = $_GET['arquivo'];

   echo "arquivo: ".$arquivo."<br/>";

   if ( file_exists($arquivo){
       echo "entrei no if para deletar<br/>";
       unlink($arquivo);
   }else{
     //Se o arquivo não existir ele imprime o que você tentou deletar para conferir
      echo "arquivo inexistente: ".$arquivo;
   }

echo "Finalizado o delete...";
?>

Cola esse código no seu delete.php e me posta o que apareceu...

(y)?

#10 GiSP

GiSP

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino

Posted 24/05/2011, 07:00

Oi Klerison, eu consegui!
Na verdade, estava faltando um parênteses aí:

if ( file_exists($arquivo))


Está ficando bem legal, estou mexendo e testando várias coisas.

Só não consegui fazer a janela abrir sem mostrar o endereço com aquele javascript, por mais que mudo não adianta.

<script language='javascript'>
     function abrirpopup(URL){
         window.open( URL ,'leitura','fullscreen=0,menubar=0,location=0,status=0,directories=0,resizable=0,scrollbars=1,width=850,height=600');
     }
</script>

Achei um outro aqui que parece que faz certo mas não estou sabendo adaptar ele no script não:

<script language="javascript">
var win = null;
function NovaJanela(pagina,nome,w,h,scroll){
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',no-resizable'
	win = window.open(pagina,nome,settings);
}
</script>


<a href="http://www.meusite.com.br" onclick="NovaJanela(this.href,'nomeJanela','800','600','no');return false">Nova Janela de Exemplo</a>

Meu código está ficando assim agora:

<style fprolloverstyle>A:hover {color: #FF9900; font-family: Tahoma; font-size: 10 pt; text-decoration: none}
</style>
<style>
a {text-decoration:none;}
</style>

<script language='javascript'>
     function abrirpopup(URL){
         window.open( URL ,'leitura','fullscreen=0,menubar=0,location=0,status=0,directories=0,resizable=0,scrollbars=1,width=850,height=600');
     }
</script>

<?
// Define um array para armazenar os arquivos
$files = array();

// Diretório atual
$d = dir('.');

// Percorre todos os arquivos
while(false !== ($file = $d->read())){
  // Se o arquivo não é este arquivo, e não começa com "." ou "~"
  // e não termina em LCK, então guarde-o para exibição futura.
  
  if(($file{0} != '.') && ($file{0} != '~') &&
    (substr($file, -3) != 'LCK') && (substr($file, -3) != 'php') && (substr($file, -3) != 'jpg') &&
	(substr($file, -3) != 'png') && (substr($file, -3) != 'gif') && 
       ($file != basename($_SERVER['PHP_SELF']))    ) {
    // Guarda o nome do arquivo e dados completos de uma chamada
	// à stat()
	$files[$file] = stat($file);
  }
}

// Fecha o diretório
$d->close();

// Exibindo o resultado em uma tabela
echo '<style>td { padding-right: 10px; }</style>';
echo '<strong><h2>Ver Textos:</h2></strong>';
echo '<div align="center">
  <center>
  <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="536" height="42" id="AutoNumber1">';
echo '<tr>
		<td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Nome do Texto</b></font></td>
      	<td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Data do 
      Envio</b></font></td>
      	<td width="139" height="25" align="center"><font face="Tahoma" size="2"><b>Remover</b></font></td>
	  </tr>';


// Ordenar os arquivos em ordem alfabética
ksort($files);

// Definir o horário brasileiro:
date_default_timezone_set('Brazil/East');

// Percorremos os arquivos, exibindo uma nova linha na tabela
// para cada um deles.

foreach ($files as $name => $stats) {
$name_link = $name; 
$name = preg_replace('/\.[^.]*$/', '', $name);

// Inicia a linha e exibe um link com o nome do arquivo

echo "<tr><td width=\"139\" height=\"25\" bgcolor=\"#E3E8EC\"><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a href='javascript:abrirpopup(\"./leituraarquivo01.php?arquivo={$name_link}\");'>{$name}</a>\n&nbsp;&nbsp;&nbsp;&nbsp;<font face=\"tahoma\" size=\"2\"></td>\n";

// Uma coluna com a data de criação do arquivo

echo '<td width=\"139\" height=\"25\" align="left">', date('d/m/Y h:ia', $stats['mtime']), "</td>\n";

// Uma coluna com botãozinho de remover

echo "<td width=\"139\" height=\"25\" align='left'><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a title='Deletar Texto' href='delete.php?arquivo={$name_link}'><img border=\"0\" src=\"delete.png\" width=\"16\" height=\"16\">  Deletar Texto</a>\n&nbsp;&nbsp;&nbsp;&nbsp;</font></td></tr>\n";
}

echo '</table>';
?>

Mas aí eu percebi uma coisa, se tiver vários arquivos na pasta, vai ficar um monte de link e a barra de rolagem fica pequenininha.
Teria como fazer aparecer assim?

Mostrar 15 textos e se tiver mais, mostrar Pagina 1, Página 2, Página 3...

Dei uma pesquisada, mas encontrei umas coisas bem complicadas e nem sei por onde começar sinceramente :unsure:

Mas fico muito agradecida com a ajuda que estão me dando aqui e estou adorando e aprendendo coisas novas, nunca pesquisei tanto :lol:

Você pode dar uma olhadinha no meu código e ver se tá ficando legal klerison?

bjinhos!

#11 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 24/05/2011, 08:22

Bom sobre não mostrar a barra de endereço se não me engano apartir do IE7 e Firefox3 não dá para ocultar mais ele fica inativo para não ser alterado...

(y)??

#12 GiSP

GiSP

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino

Posted 25/05/2011, 17:27

É, não resolvi isso do popup mesmo, parece não ter jeito de não exibir o endereço, mas tudo bem.

E com relação ao negócio das páginas como falei, eu procurei e na verdade não entendi bem como fazer isso de paginação, será que alguém pode dar uma luz?

Obrigada!

#13 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 25/05/2011, 17:49

Bom para fazer a paginação eu alteraria assim...

O código atual:
foreach ($files as $name => $stats) {
$name_link = $name; 
$name = preg_replace('/\.[^.]*$/', '', $name);

// Inicia a linha e exibe um link com o nome do arquivo

echo "<tr><td width=\"139\" height=\"25\" bgcolor=\"#E3E8EC\"><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a href='javascript:abrirpopup(\"./leituraarquivo01.php?arquivo={$name_link}\
");'>{$name}</a>\n    <font face=\"tahoma\" size=\"2\"></td>\n";

// Uma coluna com a data de criação do arquivo

echo '<td width=\"139\" height=\"25\" align="left">', date('d/m/Y h:ia', $stats['mtime']), "</td>\n";

// Uma coluna com botãozinho de remover

echo "<td width=\"139\" height=\"25\" align='left'><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a title='Deletar Texto' href='delete.php?arquivo={$name_link}'><img border=\"0\" src=\"delete.png\" width=\"16\" height=\"16\">  Deletar Texto</a>\n    </font></td></tr>
\n";
}

echo '</table>';
?>

Alteração:
$pagina = (!empty($_GET['pagina'])?$_GET['pagina']:"0");

$pontoinicial = $pagina * 15;

$names = array_keys($files);

$totalArquivo = sizeof(names)
$totalPaginas = ceil($totalArquivo /15);


for ( $i = $pontoinicial ; $i < $pontoinicial + 15 && $i < $totalArquivo; $i++){
     $name_link = $names[$i]; 
$name = preg_replace('/\.[^.]*$/', '', $names[$i]);

// Inicia a linha e exibe um link com o nome do arquivo

echo "<tr><td width=\"139\" height=\"25\" bgcolor=\"#E3E8EC\"><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a href='javascript:abrirpopup(\"./leituraarquivo01.php?arquivo={$name_link}\
");'>{$name}</a>\n    <font face=\"tahoma\" size=\"2\"></td>\n";

// Uma coluna com a data de criação do arquivo

echo '<td width=\"139\" height=\"25\" align="left">', date('d/m/Y h:ia', $stats['mtime']), "</td>\n";

// Uma coluna com botãozinho de remover

echo "<td width=\"139\" height=\"25\" align='left'><p style=\"margin-left: 5; margin-top: 0; margin-bottom: 0\"><font face=\"tahoma\" size=\"2\"><a title='Deletar Texto' href='delete.php?arquivo={$name_link}'><img border=\"0\" src=\"delete.png\" width=\"16\" height=\"16\">  Deletar Texto</a>\n    </font></td></tr>
\n";
}

echo "<tr>";
echo "<td colspan='3'>";
for ( $pag = 0; $pag < $totalPaginas ; $pag++ ){
echo "| <a href='?pagina=$pag'>".($pag+1)."</a>";
}
echo " | </td>"
echo "</tr>";
echo '</table>';

(y)??

#14 GiSP

GiSP

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino

Posted 26/05/2011, 15:31

Agora sim, muito bom! :D

Só mudei aqui:

$totalArquivo = sizeof($names);

Pois estava faltando o $ e o ;

E embaixo o ; faltando também:

echo " | </td>";

Dei uma adaptadinha pra ficar bonitinho e mudei os valores pra exibir de 10 em 10.

Ficou muito legal!

Sou sua fã Klerison e estou aprendendo bastante aqui pra um dia conseguir chegar perto disto.

Nossa, eu me matando, aí vc olha e já consegue tão rápido, quem dera eu consiga aprender tanto assim, estou empolgada mesmo, fico lendo aquele manual do php, mas é tanta coisa que a gente se perde. :wacko:

Eu vou aprontar o código todinho e postar aqui finalizado, pois acho que pode ser útil pra mais pessoas que querem aprender também.

Muito obrigada klerison, bjinhos!

Editado:

Oi pessoal, voltei!

Aconteceu um problema que só vi agora depois que alterei o código, não mostra a data e a hora direito mais.

Está mostrando assim:

31/12/1969 09:00pm

A linha que mostra este campo é esta:

echo '<td width=\"139\" height=\"25\" align="left">', date('d/m/Y h:ia', $stats['mtime']), "</td>\n";

Ai reparei que é pq a linha do foreach foi eliminada, tentei colocá-la novamente assim:

for ( $i = $pontoinicial ; $i < $pontoinicial + 10 && $i < $totalArquivo; $i++){
     $name_link = $names[$i];
     foreach ($files as $name => $stats);
$name = preg_replace('/\.[^.]*$/', '', $names[$i]);

Deste jeito mostra a data e a hora, mas mostra sempre a mesma data e a mesma hora pra todos os arquivos:
25/05/2011 03:34pm


Como posso arrumar isto agora?

Edição feita por: GiSP, 26/05/2011, 15:33.


#15 kleryson

kleryson

    Mestre

  • Usuários
  • 687 posts
  • Sexo:Masculino

Posted 27/05/2011, 09:47

Assim:

for ( $i = $pontoinicial ; $i < $pontoinicial + 10 && $i < $totalArquivo; $i++){
     $name_link = $names[$i];
     $stats = $files[$names[$i]];

(y)??




0 user(s) are reading this topic

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

IPB Skin By Virteq