Pesquisa em arquivo txt

Enviada por Fernanda 
Fernanda
Pesquisa em arquivo txt
27 de September de 2004 às 02:36PM
Bom Tarde,

Gosataria da ajuda de vcs, pois tenho um arquivo txt e tenho que pesquisar dentro dele um texto específico, consigo com o comando fread ler determinado número de bytes porém gostaria de encontrar determinado texto e exibir a linha onde ele está e mais a linha de baixo. Como eu poderia fazer isso, tem algum comando que pesquisa dentro do arquivo??
Se puderem me ajudar!!!O código que já executei é esse:

<?php
$arquivo=fopen ("F:/iptable.ini","r");
$conteudo=fread ($arquivo, 2);
echo $conteudo;
fclose ($arquivo);
?>

Obrigada,
Fernanda
pabrodiaz
Re: Pesquisa em arquivo txt
27 de September de 2004 às 04:33PM
olha.. eu faria da seguinte forma:

<?php
$encontra = '10.0.0.1';
$linhas = file('iptable.ini','r');

while(list($numero,$linha) = each($linhas)):
if(ereg($encontra,$linha)):
$linha_ocorrencia = ($linha + 1);
break;
endif;
endwhile;

echo 'linha encontrada: '.$linhas[$linha_ocorrencia]."<br>\n";
echo 'proxima linha: '.$linhas[($linha_ocorrencia +1)];
?>


ha' de ser isso
nao testei, so' escrevi aqui a lógica
se nao funcionar, e tu nao conseguir arrumar
me avisa que eu faço e testo.

abraços,
Pablo Dias
pabrodiaz
Re: Pesquisa em arquivo txt
27 de September de 2004 às 04:37PM
ops.. correcao:

<?php
$encontra = '10.0.0.1';
$linhas = file('iptable.ini','r');

while(list($numero,$linha) = each($linhas)):
if(ereg($encontra,$linha)):
$linha_ocorrencia = $linha;
break;
endif;
endwhile;

echo 'linha encontrada: '.$linhas[$linha_ocorrencia]."<br>\n";
echo 'proxima linha: '.$linhas[($linha_ocorrencia +1)];
?>

/*
so' e' preciso adicionar "1" ao $linha pra exibir o numero da linha. pq arrays começam em 0 (zero) e nao existe linha 0, num arquivo =p
questao de estetica, apenas
*/
Rodrigo
Re: Pesquisa em arquivo txt
27 de September de 2004 às 04:50PM
Nao eh o mais correto, mas vc pode fazer deste modo
Rodrigo
Re: Pesquisa em arquivo txt
27 de September de 2004 às 04:50PM
Nao eh o mais correto, mas vc pode fazer deste modo

<?php
$texto="rodrigo";
$subject=file_get_contents('exemplo.txt');
$separa1=explode("\n", $subject);
$qtd_linhas=count($separa1);
$ma1=0;
$ma3=0;
while($ma1<$qtd_linhas)
{
$separa2=explode(" ", $separa1[$ma1]);
$qtd_pal=count($separa2);
$ma2=0;
while($ma2<$qtd_pal)
{
if($separa2[$ma2]==$texto)
{
$linha_ok[$ma3]=$ma1;
$ma3++;
}
$ma2++;
}
$ma1++;
}
$qtd_ok=count($linha_ok);
$ma4=0;

while($ma4<$qtd_ok)
{
$ma5=$linha_ok[$ma4];
echo $separa1[$ma5];
$ma5++;
echo "<br>";
echo $separa1[$ma5];
echo "<br>";
$ma4++;
}
?>
Fernanda
Re: Pesquisa em arquivo txt
27 de September de 2004 às 04:57PM
Olá Rodrigo,

Sou iniciante no PHP, entaum sei o Basicão... no código que vc me passou, troquei as seguintes linhas de seu código para o meu código:

$texto="TABLE";
$subject=file_get_contents('iptable.ini');

porém retornou a mensagem de erro:
Warning: file_get_contents(iptable.ini): failed to open stream: No such file or directory in f:\arquivos de programas\apache group\apache\htdocs\arquivo2.php on line 3

Se não for incomodar....vou precisar de mais uma ajudinha...
Fernanda
Re: Pesquisa em arquivo txt
27 de September de 2004 às 05:08PM
Troquei o caminho para F:/iptable.ini, rodou porém retorna uma tela em branco pois ele não está localizando ou exibindo na tela o resultado...
Rodrigo
Re: Pesquisa em arquivo txt
27 de September de 2004 às 05:23PM
Agora funciona


<?php
$texto="TABLE";
$subject=file_get_contents('F:/iptable.ini');
$separa1=explode("\n", $subject);
$qtd_linhas=count($separa1);
$ma1=0;
$ma3=0;
while($ma1<$qtd_linhas)
{
$separa2=explode(" ", $separa1[$ma1]);
$qtd_pal=count($separa2);
$ma2=0;
while($ma2<$qtd_pal)
{
if(strtoupper($separa2[$ma2])==strtoupper($texto))
{
$linha_ok[$ma3]=$ma1;
$ma3++;
}
$ma2++;
}
$ma1++;
}
$qtd_ok=count($linha_ok);
$ma4=0;

while($ma4<$qtd_ok)
{
$ma5=$linha_ok[$ma4];
echo $separa1[$ma5];
$ma5++;
echo "<br>";
echo $separa1[$ma5];
echo "<br>";
$ma4++;
}
?>
Fernanda
Re: Pesquisa em arquivo txt
28 de September de 2004 às 10:09AM
Olá, usei esse código e está exibindo somente a primeira linha e a de baixo.... naum está fazendo a pesquisa dentro do arquivo de texto.
por exemplo:
Se eu colocar como texto para ele encontrar UPDATE que está em uma determinada linha do arquivo ele continua exibindo a 1ª e 2ª Linha do arquivo....

<?php
$encontra = 'UPDATE';
$linhas = file('F:/iptable.ini','r');
Fernanda
Re: Pesquisa em arquivo txt
28 de September de 2004 às 10:09AM
Olá, usei esse código e está exibindo somente a primeira linha e a de baixo.... naum está fazendo a pesquisa dentro do arquivo de texto.
por exemplo:
Se eu colocar como texto para ele encontrar UPDATE que está em uma determinada linha do arquivo ele continua exibindo a 1ª e 2ª Linha do arquivo....

<?php
$encontra = 'UPDATE';
$linhas = file('F:/iptable.ini','r');
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.