Ir para conteúdo

POWERED BY:

Arquivado

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

rlcampos

[Resolvido] Como ler um TXT de uma linha em diante

Recommended Posts

Olá pessoal,obrigado pela atenção.

 

Estou precisando de uma ajuda quanto a leitura e recuperação de dados em arquivos TXT.

Hoje, meu código já Lê, recupera e escreve via formulário informações em um arquivo TXT.

Com o código atual eu coloco "echo $lines[e aqui vai a linha que retorne]". Até aqui funciona perfeitamente.

 

Gostaria de ter uma variável que fosse a linha de partida para a leitura e a partir dela o código lê-se até o fim do TXT e me retornasse a informação.

Por exemplo: Leia da linha 5 até o fim do arquivo e eu usaria uma linha de código tipo:

<textarea ...> "echo $bloco =[$line[5] até o fim]" </textarea>

 

ou um simples

 

echo $bloco($line[5 em diante]);

 

OBSERVAÇÃO: (aos iniciantes como eu)

Utilizo os "echo" dentro de VALUE nos INPUTS para possibilitar a recuperação e alteração de dados em campos específicos, isto é, ao acessar a página form.php ela já me mostra o que está gravado no TXT e assim posso alterar só a linha que necessito sem ter que reescrever todo o texto.

 

 

 

pg01.txt

0 TITULO
1 Minha Pagina
2 DESCRIÇÃO
3 Pagina sobre tal assunto
4 CONTEUDO
5 Meu conteudo começa aqui
6 continua
7 continua
...e segue até aqui.

ABRE, LE, RECUPERA E GRAVA INFORMAÇÕES EM TXT

 

form.php

<?php
//Lê o arquivo TXT
  $lines = file('pg01.txt');

//Observação: 
//Inicia a contagem das linhas. Esta começa sempre em ZERO  
  $l_count = count($lines);
  for($x = 0; $x< $l_count; $x++)
  {
  }

/*
FUNÇÃO FOPEN ( )
  Consiste em abrir um arquivo ou uma URL. Os modos de abertura possíveis são:

  Modo		Descrição
	r		Abrir somente para leitura; coloca o ponteiro no começo do arquivo.

	r+		Abrir para leitura e gravação; coloca o ponteiro no começo do arquivo.

	w		Abrir somente para gravação. 
			Coloca o ponteiro no começo do arquivo e trunca para tamanho zero. 
			Se o arquivo não existir, tentar cria-lo.

	w+		Abrir para leitura e escrita. 
			Coloca o ponteiro no início do arquivo e trunca para tamanho zero. 
			Se o arquivo não existir, tenta cria-lo.

	a		Abrir o arquivo somente para escrita. 
			Coloca o ponteiro no fim do arquivo. 
			Se o arquivo não existir, tenta cria-lo.

	a+		Abrir o arquivo para leitura e gravação.
			Coloca o ponteiro no fim do arquivo. 
			Se o arquivo não existir, tenta cria-lo. 
*/

if($_POST[opc_enviar]) 
{
	//PEGA OS DADOS ENVIADOS PELO FORMULÁRIO
	$titulo	=	$_POST["pg01_tit"];
	$descr	=	$_POST["pg01_descricao"];
	$texto  =	$_POST["pg01_conteudo"];
	
	//PREPARA O CONTEÚDO A SER GRAVADO
	$conteudo   =	"TITULO DA PAGINA\n";
	$conteudo  .=	"$titulo\n";
	$conteudo  .=	"FOTO ESCOLHIDA\n";
	$conteudo  .=	"$descr\n";
	$conteudo  .=	"TEXTO DIGITADO\n";
	$conteudo  .=	"$texto\r\n";
	
	//ARQUIVO TXT
	$arquivo    =	"pg01.txt";
	
	//TENTA ABRIR O ARQUIVO TXT
	if (!$abrir = fopen($arquivo, "w+")) {
         echo  "Erro abrindo arquivo ($arquivo)";
         exit;
    }
	
	//ESCREVE NO ARQUIVO TXT
	if (!fwrite($abrir, $conteudo)) {
        print "Erro escrevendo no arquivo ($arquivo)";
        exit;
    }
	
	echo "Arquivo gravado com Sucesso !!";
	
	//FECHA O ARQUIVO 
	fclose($abrir);
}
?>

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<DIV>
	<form method="post">	
	<input type="hidden" name="opc_enviar" value="1">
		<fieldset>
			<legend>Site</legend>
				<label>
					Título da Página: <input type="text" name="pg01_tit" value="<?echo $lines[1];?>">
				</label>

		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

				<label>
					Descriçâo: <input type="text" name="pg01_descricao" value="<?echo $lines[3];?>"/>
				</label>										

		- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

				<label>
					Texto: 
					   <textarea name="pg01_conteudo" rows="7" cols="50"><?echo $bloco[5];?></textarea>
				</label>

		</fieldset>								
		<input type="submit" name="submit" value=" Enviar " />	
	</form>																		
</div>
</BODY>
</HTML>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma pergunta, porque tem isso:

 

$l_count = count($lines);  
for($x = 0; $x< $l_count; $x++)  { 
 }

???

 

Bom, pelo visto, se você dizer isso, deverá funcionar:

 

$l_count = count($lines);  
for($x = 5; $x< $l_count; $x++)  {
 echo $lines[$x]."<br>";
}

Ele iniciará o looping no 5 e nao no 0...

 

Deu pra ajudar?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Lucas,

 

tentei aqui mas o ECHO só funcionou dentro do FOR.

 

Quando eu tentei utilizar na <textarea> ou num ECHO simples só mostra a ultima linha

 

 

Quero utilizar esse agrupamento aqui por exemplo como seu fosse uma variavel BLOCO ou algo assim.

 

<?php
//Lê o arquivo TXT
  $lines = file('pg01.txt');

//	Observação: 
//	Inicia  a contagem das linhas. Esta começa sempre em ZERO  
  $l_count = count($lines);
  for($x = 5; $x< $l_count; $x++)
  {
  }

  $bloco = $lines[5].$lines[6].$lines[7].$lines[8].$lines[9].$lines[10].$lines[11].$lines[12].$lines[13].$lines[14];
?>

<HTML>
                                <label>
                                        Texto: 
                                           <textarea name="pg01_conteudo" rows="7" cols="50"><?echo $bloco;?></textarea>
                                </label>
</HTML>

Desse ultimo jeito funciona, mas ai eu tenho que estabelecer que estará dentro de BLOCO

 

Vlw pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
//Lê o arquivo TXT
  $lines = file('pg01.txt');

// Observação: 
// Inicia  a contagem das linhas. Esta começa sempre em ZERO  
  $l_count = count($lines);
  for($x = 5; $x< $l_count; $x++)
  {
      $bloco .= $line[$x];
  }
?>

<HTML>
                                <label>
                                        Texto: 
                                           <textarea name="pg01_conteudo" rows="7" cols="50"><?echo $bloco;?></textarea>
                                </label>
</HTML>

 

Desse jeito funcionará... repare que está ".=" ... ele irá concatenar td...

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

VALEU!!! Muito obrigado agora está funcionando direitinho.

 

Para quem quiser utilizar segue abaixo o código atualizado e funcionando.

Acho que vale até ir parar no Laboratório de scripts (PHP).

 

Abraço à todos.

 

********************************************************************************************************

 

ABRE, LE linha específica, bloco de linhas, RECUPERA dados E GRAVA INFORMAÇÕES EM TXT

<?php
//Lê o arquivo TXT
  $lines = file('pg01.txt');

//Observação: 
//Inicia a contagem das linhas. Esta começa sempre em ZERO  
  $l_count = count($lines);

//LOOP a partir da LINHA 5 (pode ser qualquer uma, é só definir) até o fim do arquivo
  for($x = 5; $x< $l_count; $x++)
  {
  //AGRUPA o restante do arquivo em BLOCO 
  $bloco .= $line[$x];
  }

/*
FUNÇÃO FOPEN ( )
  Consiste em abrir um arquivo ou uma URL. Os modos de abertura possíveis são:

  Modo          Descrição
        r               Abrir somente para leitura; coloca o ponteiro no começo do arquivo.

        r+              Abrir para leitura e gravação; coloca o ponteiro no começo do arquivo.

        w               Abrir somente para gravação. 
                        Coloca o ponteiro no começo do arquivo e trunca para tamanho zero. 
                        Se o arquivo não existir, tentar cria-lo.

        w+              Abrir para leitura e escrita. 
                        Coloca o ponteiro no início do arquivo e trunca para tamanho zero. 
                        Se o arquivo não existir, tenta cria-lo.

        a               Abrir o arquivo somente para escrita. 
                        Coloca o ponteiro no fim do arquivo. 
                        Se o arquivo não existir, tenta cria-lo.

        a+              Abrir o arquivo para leitura e gravação.
                        Coloca o ponteiro no fim do arquivo. 
                        Se o arquivo não existir, tenta cria-lo. 
*/

if($_POST[opc_enviar]) 
{
        //PEGA OS DADOS ENVIADOS PELO FORMULÁRIO
        $titulo =       $_POST["pg01_tit"];
        $descr  =       $_POST["pg01_descricao"];
        $texto  =       $_POST["pg01_conteudo"];
        
        //PREPARA O CONTEÚDO A SER GRAVADO
        $conteudo   =   "TITULO DA PAGINA\n";
        $conteudo  .=   "$titulo\n";
        $conteudo  .=   "FOTO ESCOLHIDA\n";
        $conteudo  .=   "$descr\n";
        $conteudo  .=   "TEXTO DIGITADO\n";
        $conteudo  .=   "$texto\r\n";
        
        //ARQUIVO TXT
        $arquivo    =   "pg01.txt";
        
        //TENTA ABRIR O ARQUIVO TXT
        if (!$abrir = fopen($arquivo, "w+")) {
         echo  "Erro abrindo arquivo ($arquivo)";
         exit;
    }
        
        //ESCREVE NO ARQUIVO TXT
        if (!fwrite($abrir, $conteudo)) {
        print "Erro escrevendo no arquivo ($arquivo)";
        exit;
    }
        
        echo "Arquivo gravado com Sucesso !!";
        
        //FECHA O ARQUIVO 
        fclose($abrir);
}
?>

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<DIV>
        <form method="post">    
        <input type="hidden" name="opc_enviar" value="1">
                <fieldset>
                        <legend>Site</legend>
                                <label>
                                        Título da Página: <input type="text" name="pg01_tit" value="<?echo $lines[1];?>">
                                </label>

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                <label>
                                        Descriçâo: <input type="text" name="pg01_descricao" value="<?echo $lines[3];?>"/>
                                </label>                                                                                

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                <label>
                                        Texto: 
                                           <textarea name="pg01_conteudo" rows="7" cols="50"><?echo $bloco;?></textarea>
                                </label>

                </fieldset>                                                             
                <input type="submit" name="submit" value=" Enviar " />  
        </form>                                                                                                                                         
</div>
</BODY>
</HTML>

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.