Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Buscar Em Diretório De Arquivos TXT

19-09-2012 19:11

Oi gente,

Eu vou explicar mais ou menos o que está acontecendo para ver se alguém pode me ajudar nisso pois pesquisei e não encontrei nada a respeito.

Eu fiz um código 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.

O código funciona certinho, todo mundo envia os textos que escreve, o código exibe cada texto pelo nome do arquivo como link e para ler, basta clicar no link exibido que abre em uma nova janela, tudo bonitinho.

O problema é que com o passar do tempo, os textos foram se acumulando e tem bastante coisa e na página que exibe, pra facilitar, ela fica paginada de 10 em 10.

Mas como agora tem muita coisa, ficou complicado achar um texto específico, pois temos que ir de página em página procurando e as vezes passa batido algum texto e não encontramos.

Por isso, eu queria tentar fazer uma caixa de busca no script, mas não sei nem por onde começar.

O script funciona assim:

Eu tenho 1 diretório onde estão armazenados todos os textos em formato TXT (bloco de notas).
O código rastreia todo o diretório e exibe cada texto pelo nome como um link, mostrando o nome do texto, a data de envio e um botãozinho do lado para deletar o texto se quiser. Assim basta clicar no link e ler o texto em uma janela pop up.

Como tem muitos textos já, eu queria criar uma caixa de pesquisa que buscasse pelo nome do texto:

Exemplo: O Príncipe das Trevas


Ou pela linha do texto que tem o nome do autor.

Por exemplo, pesquisar no diretório, encontrar e exibir pelo nome do texto e pesquisar pelo nome do autor, só que no caso do nome do autor, teria que pegar pela linha onde fica escrito isto.

Exemplo:

linha1 = Nome do Texto
linha2 = Nome do Autor
linha2 = Data

Aí neste caso, retornaria o resultado e exibiria dentro de uma tabela da seguinte forma:

Nome do Texto - Nome do Autor - Data

Não sei se deu pra entender exatamente a idéia, mas resumindo, seria uma caixa de busca que fizesse o que falei acima.

Se alguém puder me ajudar eu agradeceria muito.

Obrigada
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

19-09-2012 19:25

Eu montei um exemplo aqui para buscar em um único arquivo.

<?php $arquivo = 'dados.txt'; $buscapor = 'palavra procurada'; header('Content-Type: text/plain'); $conteudo = file_get_contents($arquivo); $parte = explode("\n", $conteudo); $base = preg_quote($buscapor, '/'); $base = "/^.*$base.*\$/m"; if(preg_match_all($base, $parte[0], $achado)){ echo "achou:\n"; echo implode("\n", $achado[0]); } else{ echo "não achou"; } ?>

Nesse exemplo $parte[0] é relativo a primeira linha do arquivo buscado.

dados.txt vai precisar conter a palavra buscada na primeira linha.

Para fazer isso com vários arquivos, você vai ter que fazer uma busca por diretório, retornando todos os arquivos do tipo desejado, e rodar esse código que postei usando a variável do nome do arquivo em:

$arquivo = 'dados.txt'; 

0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

19-09-2012 19:28

Lembrei que postei esse código que pode servir como base para a busca do arquivo. Buscar-arquivo-listar-e-baixar-PHP_1_7315.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Buscar Em Diretório De Arquivos TXT

20-09-2012 13:23

Oi web, neste caso então não resolveria, pois teria que buscar no próprio arquivo, aí daria na mesma que eu procurasse ele página por página.

Como eu disse, tem vários arquivos TXT dentro de um mesmo diretório, cada arquivo tem um nome já, meu problema, é encontrar o arquivo numa listagem tão grande.

Por isso eu queria tentar fazer uma caixa de busca, que encontrasse o arquivo, por exemplo, eu digitando o nome do texto (que tb é o nome do arquivo) na caixa de busca e aí ele me retornar o resultado, ou seja, o link para o texto em questão.

A idéia de procurar pelo nome do autor e nome do texto é pra ficar melhor a busca e retornar por exemplo, se eu pesquisasse pelo nome do autor, me retornasse todos os txt's com textos dele.

Acho que não fui bem clara, desculpe.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

20-09-2012 14:14

O ideal era que o nome do arquivo contivesse os dados a ser procurado.

titulo-autor.txt
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Buscar Em Diretório De Arquivos TXT

20-09-2012 14:32

Eu tenho um sistema de login, que usa linhas do arquivo como se fossem o usuário e a senha e aí quando são inseridos os dados, o sistema rastreia os arquivos e aí exibe exatamente o arquivo a que se referiu o suposto login e a senha.

Neste sistema, o arquivo usa as linhas 3 e 4 do TXT como se fossem o usuário e a senha.
Ao fazer o login, o script rastreia o diretório onde tem vários arquivos TXT's, compara as linhas e se existir a combinação, ele exibe num pop up o texto, a partir da linha 5 do arquivo.

Será que não daria pra tentar adaptar ele pra funcionar como um sistema de busca também?

Vou postar ele abaixo pra vc dar uma olhada:

login.php

<script language="JavaScript"> <!-- hide on function popup(popupfile,winheight,winwidth) { open(popupfile,"PopupWindow","resizable=no,height=" + winheight + ",width=" + winwidth + ",scrollbars=no"); } // hide off --> </script> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="32%" id="AutoNumber1">   <tr><FORM ACTION='ver_texto.php' METHOD='POST' TARGET="envio" onSubmit="window.open('', 'envio', 'toolbar=0,location=0,status=0,menubar=0,scrollbars=1,resizable=0,width=850,height=600')">     <td width="58%"><font face="Tahoma" size="2">Usuário:&nbsp;&nbsp;&nbsp;     </font></td>     <td width="70%"> <INPUT NAME='LOGIN' size="20"></td>   </tr>   <tr>     <td width="58%"><font face="Tahoma" size="2">Senha:</font></td>     <td width="70%"> <INPUT TYPE='password' NAME='PASS' size="20"></td>   </tr>   <tr>     <td width="58%">&nbsp;</td>     <td width="70%"> <INPUT TYPE='submit' VALUE='Enviar' style="float: right"></td>   </FORM></tr> </table>

ver_texto.php

<? $LOGIN = htmlspecialchars(stripslashes($_POST['LOGIN'])); $PASS = htmlspecialchars(stripslashes($_POST['PASS'])); $dir = "."; if (is_dir($dir)){   if ($dh = opendir($dir)){   while (($arquivo = readdir($dh)) !== false){   if(is_file($arquivo))   {   $divide = explode(".",$arquivo);   $total = (count($divide) - 1);   if($divide[$total]=='txt')   {   //echo "ARQUIVO: ".$arquivo."<BR>\n";   $arquivo_loop = file($arquivo);   $usuario=$arquivo_loop[3];   $senha=$arquivo_loop[4];   $linha10=$arquivo_loop[5];   //echo "Usuário: ".$usuario."<BR>\n";   //echo "Senha: ". $senha."<BR>\n";      if(trim($usuario)==$LOGIN AND trim($senha)==$PASS)   {   //echo "<A HREF='".$arquivo."'>Ver Texto</A>";   $arquivo_loop = file($arquivo);   $count = count($arquivo_loop);   //include 'header.php';   echo '<div align="center"><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">Texto</font></b></p><pre>';   for($i=5; $i<=count($arquivo_loop); $i++)   {   echo $arquivo_loop[$i]."";   }   echo "</pre></td></tr></table></center></div>";   echo '<center><a href="#" onclick="window.print();"><img border="0" src="print1.gif" width="43" height="40"></a></center>';   }   } } } closedir($dh); } } ?> <?   //include 'footer.php'; ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

20-09-2012 14:41

Suponho que aqui pega os valores da linha

$usuario=$arquivo_loop[3]; $senha=$arquivo_loop[4]; $linha10=$arquivo_loop[5]; 

Basta então você definir a linha que leva o valor em seu txt, para se basear nesse if para retornar o arquivo

 if(trim($usuario)==$LOGIN AND trim($senha)==$PASS) 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Buscar Em Diretório De Arquivos TXT

20-09-2012 15:07

Sim, isso já é oq este script faz, mas ele funciona como forma de login mesmo, ou seja, as linhas 3 e 4, são definidas como sendo usuário e senha respectivamente e a linha 5 é a partir dela que o texto é exibido.

Mas eu queria saber como transformar isso como sendo uma ferramenta de busca como falei antes, ou seja, ao invés de inserir um "usuário e senha", no campo, colocar o nome do arquivo que estará na linha 3 por exemplo e aí ele me retornar o arquivo como um link encontrado.

Ou criar 2 campos de pesquisa por exemplo, num campo buscar pelo nome do texto e no outro, buscar pelo nome do autor ou pela data, mas não estou sabendo como fazer isto pois aí ficaria mais legal a busca e retornaria um resultado mais específico.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

20-09-2012 15:32

Se é para uma linha só, basta você tirar o tr da senha no login.php

No ver_texto.php, você tira

$PASS = htmlspecialchars(stripslashes($_POST['PASS'])); 

E altera essa linha

if(trim($usuario)==$LOGIN AND trim($senha)==$PASS) 

Para essa

if(trim($usuario)==$LOGIN) 

No caso, vai comparar só o login.

Ai você precisa definir qual a linha que contem o valor buscado

$usuario=$arquivo_loop[3];
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Buscar Em Diretório De Arquivos TXT

24-09-2012 13:58

Oi web, fiz oq vc falou e era pra ter dado certo, mas agora aparece um erro na linha 32:

Parse error: syntax error, unexpected '{' IN C:\xampp\htdocs\textos\ver_texto.php ON line 32

Já conferi e aparentemente as chaves estão fechando certinho, mas o erro continua como aparece acima.

Pode olhar o código e ver onde estou errando agora?

Obrigada

<? $NOME = htmlspecialchars(stripslashes($_POST['NOME'])); //$PASS = htmlspecialchars(stripslashes($_POST['PASS'])); $dir = "."; if (is_dir($dir)){   if ($dh = opendir($dir)){   while (($arquivo = readdir($dh)) !== false){   if(is_file($arquivo))   {   $divide = explode(".",$arquivo);   $total = (count($divide) - 1);   if($divide[$total]=='txt')   {   //echo "ARQUIVO: ".$arquivo."<BR>\n";   $arquivo_loop = file($arquivo);   $nome=$arquivo_loop[3];   //$senha=$arquivo_loop[4];   $linha10=$arquivo_loop[5];   //echo "Usuário: ".$usuario."<BR>\n";   //echo "Senha: ". $senha."<BR>\n";     if(trim($nome)==$NOME)   { // linha 32 que aparece o erro   //echo "<A HREF='".$arquivo."'>Ver Texto</A>";   $arquivo_loop = file($arquivo);   $count = count($arquivo_loop);   //include 'header.php';   echo '<div align="center"><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">Texto</font></b></p><pre>';   for($i=5; $i<=count($arquivo_loop); $i++)   {   echo $arquivo_loop[$i]."";   }   echo "</pre></td></tr></table></center></div>";   echo '<center><a href="#" onclick="window.print();"><img border="0" src="print1.gif" width="43" height="40"></a></center>';   }   } } } closedir($dh); } } ?> <?   //include 'footer.php'; ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

24-09-2012 14:43

Verifiquei aqui e não achei esse erro. Passa a primeira parte do código.
Contando aqui a abertura de chave, são 7 e o fechamento também. Executando o código, só deu erro de variáveis que não foram passadas.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Buscar Em Diretório De Arquivos TXT

24-09-2012 15:02

Oi web, é estranho, procurei várias vezes e também não achei o erro em nenhuma parte do código, estou achando que é o meu xampp pois depois que reinstalei ele aqui quando instalou o windows 7 ele ficou bem esquisito e não reconhecia nada em php e de repente voltou a funcionar direito.

Reiniciei o xampp agora e funcionou só que com outros erros.

Agora ele está mostrando o texto quando coloco o nome na caixa de busca já abre em uma nova janela certinho, mas aí repete o texto inteiro de novo embaixo.

Vou colar abaixo a primeira parte também:

login.php

<script language="JavaScript"> <!-- hide on   function popup(popupfile,winheight,winwidth) { open(popupfile,"PopupWindow","resizable=no,height=" + winheight + ",width=" + winwidth + ",scrollbars=no"); }   // hide off --> </script>   <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="32%" id="AutoNumber1">   <tr><FORM ACTION='ver_texto.php' METHOD='POST' TARGET="envio" onSubmit="window.open('', 'envio', 'toolbar=0,location=0,status=0,menubar=0,scrollbars=1,resizable=0,width=850,height=600')">     <td width="58%"><font face="Tahoma" size="2">Nome:&nbsp;&nbsp;&nbsp;     </font></td>     <td width="70%"> <INPUT NAME='NOME' size="20"></td>   </tr>   <!---<tr>    <td width="58%"><font face="Tahoma" size="2">Data:</font></td>    <td width="70%"> <INPUT TYPE='DATA' NAME='DATA' size="20"></td>  </tr>  <tr> -->     <td width="58%">&nbsp;</td>     <td width="70%"> <INPUT TYPE='submit' VALUE='Enviar' style="float: right"></td>   </FORM></tr> </table>

Do jeito que está, o ver_texto.php eu coloquei pra pegar o nome na linha 4 do arquivo txt que fica no mesmo diretório e agora está abrindo na nova janela, mas ele está repetindo o texto inteiro novamente e aparecendo este erro no final:

Notice:  Undefined offset: 81 IN C:\xampp\htdocs\textos\ver_texto.php ON line 41

Aproveitando a mensagem, como pode ver, no código, agora quando eu digitar o nome do autor, vai abrir o texto numa nova janela, mas no caso, se o autor tiver vários textos, como faço para que exiba cada texto como link ao invés de abrir só 1 diretamente na pop up?

Por exemplo, o autor é Gisele, eu coloco em cada texto, na linha 4 por exemplo, o nome do autor, então, seu eu tiver 10 textos, do jeito que está o código não vai mostrar os 10.

Como faço para retornar mais ou menos assim:

Foram encontrados 10 textos:

Nome do Texto 1 (que é o nome do arquivo txt)
Nome do Texto 2 (que é o nome do arquivo txt)
Nome do Texto 3 (que é o nome do arquivo txt)


Fico agradecida se puder me ajudar neste erro que está dando agora que mostrei acima e nessa repetição do texto que está aparecendo.

Ah, eu testei o script sem nenhuma modificação e agora todos os meus scripts aparecem erros parecidos com este "Notice: Undefined offset:", mesmo os que estava corretos antes, então acho que deve ser coisa do xampp mesmo pelo jeito.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

24-09-2012 15:19

Provavelmente seu Xampp não aceita short tag, que é usar
<?
tem que ser
<?php

Testa esse código

<?php $NOME = htmlspecialchars(stripslashes($_POST['NOME'])); //$PASS = htmlspecialchars(stripslashes($_POST['PASS'])); $dir = "."; $conta_total = 0; // total de arquivos $nome_arquivo = Array(); // array para nome do arquivo if (is_dir($dir)){ if ($dh = opendir($dir)){ while (($arquivo = readdir($dh)) !== false){ if(is_file($arquivo)) { $divide = explode(".",$arquivo); $total = (count($divide) - 1); if($divide[$total]=='txt') { //echo "ARQUIVO: ".$arquivo."<BR>\n"; $arquivo_loop = file($arquivo); $nome=$arquivo_loop[3]; //$senha=$arquivo_loop[4]; $linha10=$arquivo_loop[5]; //echo "Usuário: ".$usuario."<BR>\n"; //echo "Senha: ". $senha."<BR>\n"; if(trim($nome)==$NOME) { // linha 32 que aparece o erro $conta_total++; $nome_arquivo[] = $arquivo; // adiciona o nome do arquivo no array //echo "<A HREF='".$arquivo."'>Ver Texto</A>"; $arquivo_loop = file($arquivo); $count = count($arquivo_loop); //include 'header.php'; echo '<div align="center"><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">Texto</font></b></p><pre>'; for($i=5; $i<=count($arquivo_loop)-1; $i++) { //echo $arquivo_loop[$i].""; } echo "</pre></td></tr></table></center></div>"; echo '<center><a href="#" onclick="window.print();"><img border="0" src="print1.gif" width="43" height="40"></a></center>'; } // trim } // divide } // is file } // while closedir($dh); } // dir } // is dir echo "Foram encontrados $conta_total texto(s)<br />"; foreach($nome_arquivo AS $arquivo_achado) { echo "".$arquivo_achado."<br />"; } //include 'footer.php'; ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Buscar Em Diretório De Arquivos TXT

24-09-2012 15:53

oi web, testei aqui, ele abriu numa pop up, exibiu o texto duplicado novamente e embaixo de tudo apareceu assim:

Foram encontrados 2 texto(s)
Anoitecer.txt
Dia Difícil.txt

É mais ou menos isso mesmo, só não entendo pq agora aparece o texto repetido, no script sem alteração aparece só 1.

Mas é mais ou menos isso mesmo que quero que exiba, mas mostrando os textos como link sem mostrar a extensão do arquivo.

Eu tenho outro script, que rastreia o diretório todo e encontra todos os textos e exibe como links sem mostrar a extensão dos arquivos.

Vou postar ele aqui!


oi web, estou tentando postar uma resposta mas aparece um erro e não consigo postar o código aqui, o que será?
OOOOOps!

Houve algum erro ao carregar o link desejado

O URL /forum/posting.php?mode=reply&f=1&sid=04b1fe0bd88e1a33e67f24373910d39d&t=7445 não existe ou está passando por problemas.

Se você está vindo de algum buscador como o Google, buscando por tópicos do fórum,
tente acessar o link criado automaticamente abaixo


forum_posting.php?mode=reply&f=1&t=7445_undefined.html


Se o link criado não funcionar informar para email codigosnaweb [@] hotmail [.] com


Ocorreram alterações recentes nos links do fórum. Portanto, esse problema acontecerá por algum tempo.
Eu coloquei o código certinho dentro do code mas não consigo postar ele de jeito nenhum.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

24-09-2012 16:17

Pode ter algum caracter inválido no código, ou, pode ter sido salvo no DW, que causa esse erro.

Eu não sei que texto repetido é esse. Com essa linha, descomentada

// echo $arquivo_loop[$i].""; 

Ele retorna trecho dos 2 arquivos que achou. Se possível posta um print desse erro e também me envia por email esse código para eu verificar.

codigosnaweb1{arroba}gmail{ponto}com
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Buscar Em Diretório De Arquivos TXT

24-09-2012 16:31

oi web, enviei para o e-mail que passou pois realmente não consegui postar no fórum o código que estava tentando.

Espero que entenda o e-mail, vou postar parte do que escrevi aqui, mas sem o código tá?

Este script lista todos os arquivos do diretório, exibe cada um como um link, sem mostrar a extensão e se tiver muitos arquivos, ele faz a paginação também e pra ficar mais bonitinho, eu coloquei dentro de uma tabela, onde mostra assim:

Autor | Data de Envio | Excluir Texto

Clicando no link de cada texto, abre uma nova janela para poder ler o texto a partir da linha especificada, assim não mostra as linhas de cima que foram usadas para fazer a parte do login como estava antes:

lista_textos.php (enviei no seu e-mail)

Este outro é o arquivo que exibe o texto na nova janela:

leitura.php (enviei no seu e-mail)

Então, baseado nestes 2 scripts, eu queria a busca justamente para facilitar de achar os textos.

Do jeito que ficou agora a busca com a mudança que você fez, já está quase do jeito que quero mas como eu disse, está repetindo o texto.

Vendo estes meus códigos, dá pra adaptar no seu que enviou agora, para exibir o resultado como exibe no lista_textos.php que postei acima?

Nossa, acho que compliquei demais, espero que entenda o que eu quis dizer :(
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

24-09-2012 16:51

Ainda não recebi o email, estou aguardando.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Buscar Em Diretório De Arquivos TXT

24-09-2012 16:52

oi web, testei aqui, ele abriu numa pop up, exibiu o texto duplicado novamente e embaixo de tudo apareceu assim:

Foram encontrados 2 texto(s)
Anoitecer.txt
Dia Difícil.txt

É mais ou menos isso mesmo, só não entendo pq agora aparece o texto repetido, no script sem alteração aparece só 1.

Mas é mais ou menos isso mesmo que quero que exiba, mas mostrando os textos como link sem mostrar a extensão do arquivo.

Eu tenho outro script, que rastreia o diretório todo e encontra todos os textos e exibe como links sem mostrar a extensão dos arquivos.

Vou postar ele aqui!

Este script lista todos os arquivos do diretório, exibe cada um como um link, sem mostrar a extensão. Pra ficar mais bonitinho, eu coloquei dentro de uma tabela, onde mostra assim:

Autor | Data de Envio | Excluir Texto

Clicando no link de cada texto, abre uma nova janela para poder ler o texto a partir da linha especificada, assim não mostra as linhas de cima que foram usadas para fazer a parte do login como estava antes:

lista_textos.php

  <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') && (substr($file, -3) != 'htm') &&         (substr($file, -3) != 'html') && (substr($file, -3) != 'images') &&       ($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();   // Exibe o resultado em uma tabela echo '<style>td { padding-right: 10px; }</style>'; echo '<strong><h2>Gerenciar 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>Autor</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');   $pagina = (!empty($_GET['pagina'])?$_GET['pagina']:"0");   $pontoinicial = $pagina * 10;   $names = array_keys($files);   $totalArquivo = sizeof($names); $totalPaginas = ceil($totalArquivo /10);     for ( $i = $pontoinicial ; $i < $pontoinicial + 10 && $i < $totalArquivo; $i++){     $name_link = $names[$i];     $stats = $files[$names[$i]]; $name = preg_replace('/\.[^.]*$/', '', $names[$i]);   // Percorre 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='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 o link e botão para remover o arquivo 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\">  Excluir Texto</a>\n&nbsp;&nbsp;&nbsp;&nbsp;</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>'; ?>

Este é o arquivo que exibe o texto na nova janela:

leitura.php

<?php         $fp = file($_GET['arquivo']);                  $linha = 5;//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">Texto</font></b></p><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>"; ?>

Então, baseado nestes 2 scripts, eu queria a busca justamente para facilitar de achar os textos.

Do jeito que ficou agora a busca com a mudança que você fez, já está quase do jeito que quero mas como eu disse, está repetindo o texto.

Vendo estes meus códigos, dá pra adaptar no seu que enviou agora, para exibir o resultado como exibe no listar_textos.php que postei acima?

Nossa, acho que compliquei demais, espero que entenda o que eu quis dizer :(
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

24-09-2012 18:05

Se possível posta uma imagem do que é esse texto duplicado no script que postei.
Aqui aparece no topo Texto, e abaixo do script do txt uma imagem.

Já alterar esse script pronto, seria personalizar um script, ai eu cobro.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 38
Sexo: Masculino

Buscar Em Diretório De Arquivos TXT

24-09-2012 21:25

oi web, desculpe, mas não estou pedindo para que você faça e sim pedindo dicas pois pensei que o fórum era para isto.
O script está pronto e estou tentando adaptar melhor pois surgiu a idéia de fazer a busca para facilitar, tanto é que eu postei no tópico, para que sirva para outros que possam ter dúvidas ou que precisem de algo parecido e assim é uma forma de eu contribuir também com o fórum.
Eu não sou expert em php, estou começando ainda, mas consigo me virar pesquisando, pedindo informações, testando, errando e aprendendo com os erros pois acho que assim é a melhor forma de aprender as coisas.
Mas desculpe então, se foi demais a dica que pedi, não estou desvalorizando seu trabalho, pelo contrário, admiro muito as pessoas que têm conhecimento e ajudam outras pessoas, mas o caso aqui é simples, não se trata de uma personalização, apenas de uma pequena adaptação que como viu, eu já fiz a maior parte e já tinha a lógica para continuar, apenas não sei todos os macetes e caminhos do php ainda.

Obrigada
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Buscar Em Diretório De Arquivos TXT

24-09-2012 21:41

Por isso pedi um print do script anterior. Para ver qual texto duplicado é. Porque o código está relacionado ao número de arquivos retornados.
Sendo dois arquivos que tem o texto buscado, repetirá tudo duas vezes que estiver no laço.

Lembrando que o fórum não é para fazer o código para o usuário. Muitas vezes alguns códigos até simples eu faço. Mas tem códigos que tem que fazer adaptações, ai eu cobro pelo serviço. Já que aqui não é financiado pelo governo. Preciso ganhar $ também ;)
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Bing [Bot], Google [Bot]