rlcampos 0 Denunciar post Postado Outubro 23, 2009 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
lucasmartins 6 Denunciar post Postado Outubro 23, 2009 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
rlcampos 0 Denunciar post Postado Outubro 23, 2009 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
lucasmartins 6 Denunciar post Postado Outubro 23, 2009 <?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
rlcampos 0 Denunciar post Postado Outubro 23, 2009 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