www.visualdicas.com.br Open in urlscan Pro
192.185.211.53  Public Scan

URL: https://www.visualdicas.com.br/programacao/php/94-como-ler-e-escrever-em-arquivos-txt-usando-php
Submission: On March 01 via api from US — Scanned from DE

Form analysis 3 forms found in the DOM

GET /component/finder/search

<form id="mod-finder-searchform95" action="/component/finder/search" method="get" class="form-search form-inline">
  <div class="finder">
    <label for="mod-finder-searchword95" class="element-invisible finder">Pesquisa</label><input type="text" name="q" id="mod-finder-searchword95" class="search-query input-medium form-control" size="60" value="" placeholder="Pesquisar..."
      autocomplete="off"><button class="btn btn-primary hasTooltip  finder" type="submit" title="" data-original-title="OK"><span class="icon-search icon-white"></span>Pesquisa</button>
    <input type="hidden" name="Itemid" value="134">
  </div>
</form>

POST https://www.visualdicas.com.br/cb-login

<form action="https://www.visualdicas.com.br/cb-login" method="post" id="login-form" class="cbLoginForm">
  <input type="hidden" name="option" value="com_comprofiler">
  <input type="hidden" name="view" value="login">
  <input type="hidden" name="op2" value="login">
  <input type="hidden" name="return" value="B:aHR0cHM6Ly93d3cudmlzdWFsZGljYXMuY29tLmJyL3Byb2dyYW1hY2FvL3BocC85NC1jb21vLWxlci1lLWVzY3JldmVyLWVtLWFycXVpdm9zLXR4dC11c2FuZG8tcGhw">
  <input type="hidden" name="message" value="0">
  <input type="hidden" name="loginfrom" value="loginmodule">
  <input type="hidden" name="cbsecuritym3" value="cbm_33500619_3e502357_06c6c232ce5133317c8ac89a1c4037b2">
  <fieldset class="userdata">
    <p id="form-login-username">
      <span class="cb_template cb_template_default">
        <span class="cbModuleUsernameIcon fa fa-user" title="Nome de usuário ou e-mail"></span>
      </span>
      <input id="modlgn-username" type="text" name="username" class="inputbox" size="20">
    </p>
    <p id="form-login-password">
      <span class="cb_template cb_template_default">
        <span class="cbModulePasswordIcon fa fa-lock" title="Senha"></span>
      </span>
      <input id="modlgn-passwd" type="password" name="passwd" class="inputbox" size="20">
    </p>
    <button type="submit" name="Submit" class="button"> Acessar </button>
  </fieldset>
  <ul id="form-login-links">
    <li id="form-login-forgot">
      <a href="https://www.visualdicas.com.br/cb-forgot-login">
																			Perdeu o acesso?											</a>
    </li>
  </ul>
</form>

POST https://www.paypal.com/cgi-bin/webscr

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
  <p><input name="cmd" type="hidden" value="_s-xclick"> <input name="hosted_button_id" type="hidden" value="QQJKRB8BAALPG"> <input title="PayPal - The safer, easier way to pay online!" alt="Faça doações com o botão do PayPal" name="submit"
      src="https://www.paypalobjects.com/pt_BR/BR/i/btn/btn_donateCC_LG.gif" type="image"> <img src="https://www.paypal.com/pt_BR/i/scr/pixel.gif" alt="" width="1" height="1" border="0"></p>
  <pre><span style="font-size: 10pt;">&nbsp;Obrigado!</span><br><span style="font-size: 10pt;">Angelo Luis Ferreira</span><br><span style="font-size: 10pt;">angelo.alf@gmail.com</span></pre>
</form>

Text Content

Our website uses cookies to ensure you get the best experience on our website.



Nosso site usa cookies para garantir que você obtenha a melhor experiência na
utilização e visualização de conteúdo.
 * More information - Informações

Got It! - Concordo!!


DAMOS VALOR À SUA PRIVACIDADE

Nós e os nossos parceiros armazenamos e/ou acedemos a informações dos
dispositivos, tais como cookies, e processamos dados pessoais, tais como
identificadores exclusivos e informações padrão enviadas pelos dispositivos,
para fins relacionados com anúncios e conteúdos personalizados, medição de
anúncios e conteúdos e perspetivas sobre o público, assim como para desenvolver
e melhorar produtos. Com a sua permissão, nós e os nossos parceiros poderemos
usar identificação e dados de geolocalização precisos através da procura de
dispositivos. Poderá clicar para consentir o processamento por nossa parte e
pela parte dos nossos 760 parceiros, conforme descrito acima. Em alternativa,
pode aceder a informações mais pormenorizadas e alterar as suas preferências
antes de consentir ou recusar o consentimento. Tenha em atenção que algum
processamento dos seus dados pessoais poderá não exigir o seu consentimento, mas
que tem o direito de se opor a esse processamento. As suas preferências serão
aplicadas apenas a este website. Poderá alterar as suas preferências em qualquer
momento, regressando a este site ou acedendo à nossa política de privacidade.
MAIS OPÇÕESCONCORDO

Contato   Registrar   Login
 * 
 * 
 * 

PesquisaPesquisa
 * Home
 * Programação
   * HTML
   * CSS
   * JavaScript
   * PHP
   * React
 * Tools
   * Web Servers
   * Databases
   * Instaladores
   * Versionamento GIT
   * IDE's
 * Scripts
   * Botões
   * Menus
   * Text / String
   * Notificações
 * Sites úteis
   * Web Design
     * Imagens gratuitas
     * Gerador de botões
     * Biblioteca de ícones
   * Desenvolvimento
     * Editores gratuitos
     * IDEs gratuitos
   * Frameworks
     * Frameworks CSS
     * Frameworks JavaScript
   * Bibliotecas
     * Bibliotecas JavaScript
   * Ferramentas
     * Repositórios Git
 * Tabelas
   * Tabela de Cores HTML
 * Blog
 * Cursos


 * 
 * Início
 * Programação
 * PHP
 * Como ler ou escrever em arquivos TXT - PHP


COMO LER OU ESCREVER EM ARQUIVOS TXT - PHP

 * Imprimir
 * Email

Detalhes Angelo Luis Ferreira PHP 05 Abril 2021 Acessos: 24365
 * PHP

Neste tutorial mostraremos como ler ou escrever conteúdo em um arquivo de texto
TXT. Para isto, vamos utilizar duas funções nativas do PHP: file_get_contents()
para ler todo o conteúdo de um arquivo em uma string e file_put_contents() para
escrever uma string em um arquivo.

Essas funções podem ser utilizadas para gravar, consultar e manipular
informações sem precisar de um banco de dados. São muito utilizadas em sistemas
de logs para gravar erros de aplicação, sistemas com dados estruturados Json e
sistemas de dados simples como contadores, por exemplo.

Como exemplo, vamos construir uma lista de tarefas onde os dados ficarão
gravados em um arquivo txt, dispensando a utilização de um banco de dados.




1. LENDO UM ARQUIVO TXT


1.1. Podemos ler todo o conteúdo de um arquivo em uma string, usando a função
file_get_contents().

1.1.1. A função file_get_contents() é o método preferível para ler o conteúdo de
um arquivo em uma string, pois utiliza técnicas de mapeamento de memória, que
quando suportadas pelo servidor, melhoram a performance da leitura.

1.1.2. O arquivo de texto criado poderá ter qualquer tipo de extensão (.txt,
.php, .doc, .xls, json, etc). Entretanto, vamos adotar a extensão .txt como
padrão para o nosso tutorial.

Sintaxe:

file_get_contents(path, include_path, context, offset, max_length) 

 Parâmetros:


Parâmetro

Descrição  path  Obrigatório. Especifica o caminho do arquivo que será lido.
 include_path  Opcional. Defina este parâmetro como '1' se você deseja pesquisar
o arquivo no "include" (em php.ini)  context  Opcional. Especifica o contexto do
identificador de arquivo. Contexto é um conjunto de opções que podem modificar o
comportamento de um fluxo (streams). Pode ser ignorado usando NULL.  offset
 Opcional. Especifica o ponto no arquivo onde a leitura deve começar. Os valores
negativos contam a partir do final do arquivo.  max_length  Opcional. Especifica
o comprimento máximo dos dados lidos.

 1.2. Portanto, a função file_get_contents() lê e retorna o conteúdo do arquivo
em uma string, começando a partir de offset até max_length. Caso esses
parâmetros não estejam especificados, a função file_get_contents() irá ler e
retornar todo o conteúdo do arquivo.

1.3. Em caso de falha, a função file_get_contents() retornará false.

1.4. Para utilizar os parâmetros avançados include_path e context, leia:
include_path  e streams no PHP. Neste tutorial não usaremos estes parâmetros.


2. ESCREVENDO EM UM ARQUIVO TXT


2.1. Podemos gravar dados em um arquivo TXT por meio da função
file_put_contents().

Sintaxe:

file_put_contents(path, data, mode, context)  

Parâmetros:


Parâmetro

Descrição  path

 Obrigatório. Especifica o caminho do arquivo no qual se deseja gravar. Se o
arquivo não existir, esta  função irá criar um.

 data  Obrigatório. Os dados a serem gravados no arquivo. Pode ser uma string,
um array ou um fluxo de dados (data stream)  mode  Opcional. Especifica como
abrir / escrever no arquivo. Valores:
 * FILE_USE_INCLUDE_PATH - procura pelo nome do arquivo nos diretórios de
   "include". Veja include_path para mais informações. 
 * FILE_APPEND - Se o arquivo já existir, acrescenta os dados ao arquivo ao
   invés de sobrescrevê-lo.
 * LOCK_EX - Coloca um bloqueio exclusivo no arquivo enquanto grava nele.

 context  Opcional. Especifica o contexto do identificador de arquivo. Contexto
é um conjunto de opções que podem modificar o comportamento de um fluxo
(streams).

2.2. Portanto, a função file_put_contents() grava o conteúdo de uma string em um
arquivo, respeitando os parâmetros acima.

2.3. Se o nome do arquivo especificado no parâmetro path não existir, este
arquivo será criado automaticamente. Caso contrário, o arquivo existente será
sobrescrito, a não ser que a flag FILE_APPEND esteja definida.

2.2.1. Caso o mode FILE APPEND estiver definido, a string será incluída no final
do arquivo.

2.2.2. Caso o mode LOCK_EX estiver definido, o arquivo será bloqueado.

2.2.2. Para utilizar os parâmetros avançados include_path e context, leia:
include_path  e streams no PHP. Neste tutorial não usaremos estes parâmetros.

2.3. Procure sempre utilizar o mode FILE APPEND para evitar a exclusão do
conteúdo já existente no arquivo.


3. EXEMPLO PRÁTICO

3.1. Para exemplificarmos o uso das funções de leitura e gravação de dados em
arquivos, vamos criar uma lista de tarefas onde o usuário adiciona as tarefas
que deverão ficar gravadas em um arquivo txt, dispensando o uso de um banco de
dados.

3.2. Para montarmos o nosso sistema vamos criar três arquivos: index.php,
receive.php e delete.php.


3.2.1. O arquivo index.php é responsável pelo formulário de adição de novas
tarefas, fazer a leitura do arquivo tarefas.txt (se ele existir), exibir a lista
de tarefas e mostrar o botão para excluir a lista na tela.

3.2.2. O arquivo receive.php é responsável por obter a tarefa enviada pelo
formulário através da requisição HTTP (via POST) e escrever essa tarefa no final
do arquivo tarefas.txt, pois utilizamos o parâmetro FILE APPEND na função
file_put_contents().

3.2.3. O arquivo delete.php é responsável por excluir o arquivo tarefas.txt
através da função unlink().

3.2.4. Atenção: Os arquivos citados acima deverão estar contidos na mesma pasta.



3.3. Seguem abaixo os arquivos com os seus respectivos códigos.

index.php

<h1>Formulário - Listas de Tarefas</h1> 
<form method="POST" action="receive.php">
    <input type="text" name="tarefa" placeholder="Digite uma atividade" />
    <input type="submit" value="Enviar">    
</form>
<?php

// pega dados do arquivo tarefas.txt e coloca na tela
if (file_exists("tarefas.txt")) {
    $lista = file_get_contents("tarefas.txt");
    $lista_array = explode("\n", $lista);
    foreach($lista_array as $lista_item) {
        echo $lista_item.'<br/>';
    }
} else {
    $lista = null;
}

?>
<br/>
<!--deleta o arquivo tarefas.txt -->
<button onclick="window.location.href = 'delete.php'">Excluir Lista</button>

receive.php

<?php
// pega dados do formulário ($tarefa)
$tarefa = filter_input(INPUT_POST, 'tarefa', FILTER_SANITIZE_SPECIAL_CHARS);

// escreve dados $tarefa no final do arquivo tarefas.txt (FILE_APPEND)
if ($tarefa) {
   file_exists("tarefas.txt") ? $text =  "\n".$tarefa : $text = $tarefa;
   file_put_contents('tarefas.txt', $text, FILE_APPEND);      
}

header('Location: index.php');

delete.php

<?php
// exclui arquivo tarefas.txt
if (file_exists("tarefas.txt")) {
    unlink('tarefas.txt');
}    

header('Location: index.php');

  Para testar os códigos acima, acesse:
https://www.visualdicas.com.br/exemplos/php/exemplo01/index.php.

 Observações

3.4. No arquivo index.php fizemos a leitura do arquivo tarefas.txt, da seguinte
forma:

3.4.1. Primeiro, por intermédio da função file_exists("tarefa.txt") verificamos
se o arquivo tarefas.txt existe ou não. Leia Verificar se um arquivo ou um
diretório existe com PHP.

3.4.2. Depois, se o arquivo tarefas.txt existir, fazemos a leitura  dele usando
a função file_get_contents("tarefas.txt"). Observe que utilizamos apenas o
parâmetro obrigatório path para ler em string todo o conteúdo do arquivo. Esse
conteúdo ficará então armazenado na variável $lista.

3.4.3. Para exibirmos a lista de tarefas na tela, vamos primeiro criar um array
para armazenar partes da string (tarefas) que foram separadas pela função
explode(). Para isto, usamos como delimitador o comando "\n" que indica quebra
de linha. Depois do conteúdo estar separado em elementos do array, podemos
exibir cada elemento (tarefa) por meio do construtor foreach(). Leia Como
dividir strings em PHP (separe e-mails, urls, textos, tags...).

3.4.4. Veja abaixo como deve ficar o nosso exemplo após a inclusão de algumas
tarefas.



3.5. No arquivo receive.php gravamos o conteúdo da seguinte forma:

3.5.1. Primeiro obtemos o valor enviado pelo formulário através do método POST
(requisição HTTP) e o atribuímos à variável $tarefa.

3.5.2. Usando o operador ternário podemos atribuir à variável $text os valores
(leia Como realizar atribuição condicional a uma variável PHP (Operador
Ternário):

3.5.2.1. Se o arquivo tarefas.txt existir, a variável $text = "\n".$tarefa, ou
seja, o valor da variável $text será a concatenação do comando "\n" para quebrar
a linha com a variável $tarefa. Isto promoverá a quebra de linha antes de
inserir o valor da variável no arquivo txt, criando uma lista vertical de
tarefas.

3.5.2.2. Se o arquivo txt não existir ainda, a variável $text será igual a
$tarefa. Como é a primeira tarefa adicionada, não há a necessidade da quebra de
linha.

3.5.3. Finalmente usamos a função file_put_contents('tarefas.txt', $text,
FILE_APPEND) para escrever o valor de $text no final do arquivo txt, pois
ativamos o parâmetro FILE_APPEND.

3.5.3.1. Observe que utilizamos apenas os parâmetros obrigatórios path e data, e
o parâmetro FILE_APPEND para gravar o valor recebido pelo formulário no final do
arquivo tarefas.txt, evitando-se portanto a sobreposição do conteúdo.

3.5.3.2. É importante frisarmos que se não existir o arquivo txt, a função irá
criar um conforme definido pelo parâmetro path.

3.6. No arquivo delete.php excluímos o arquivo tarefas.txt ao clicar no botão 
"Excluir Lista". Para isto utilizamos a função unlink('tarefas.txt') que exclui
o arquivo e limpa o cache também. Leia
https://www.php.net/manual/pt_BR/function.unlink.php

3.7. Exemplo do resultado da nossa lista de tarefas:



  Para testar, acesse:
https://www.visualdicas.com.br/exemplos/php/exemplo01/index.php


DOCUMENTAÇÃO OFICIAL

1. [Documentação PHP - Função file_get_contents()] » Sobre a função
file_get_contents().

2. [Documentação PHP - Função file_put_contents()] » Sobre a função
file_put_contents().


Facebook Social Comments
Compartilhe:
 * Anterior
 * Próximo


MAIS ARTIGOS...

 * Como alterar nome de um banco de dados MySQL usando o phpMyAdmin
 * Como criar funções em PHP
 * Diferença entre aspas simples (') e aspas duplas (") em PHP
 * Como identificar IP do usuário com PHP
 * Identificar se o dispositivo é móvel - PHP
 * Como limitar textos com número de caracteres usando PHP
 * Como subtrair ou somar dias de uma data qualquer - PHP
 * Como pegar número de Likes do Facebook com PHP
 * Passar variável JavaScript para PHP
 * Passar variável PHP para JavaScript




MENU

 * Home
 * Programação
   * HTML
   * CSS
   * JavaScript
   * PHP
   * React
 * Tools
   * Web Servers
   * Databases
   * Instaladores
   * Versionamento GIT
   * IDE's
 * Scripts
   * Botões
   * Menus
   * Text / String
   * Notificações
 * Sites úteis
   * Web Design
     * Imagens gratuitas
     * Gerador de botões
     * Biblioteca de ícones
   * Desenvolvimento
     * Editores gratuitos
     * IDEs gratuitos
   * Frameworks
     * Frameworks CSS
     * Frameworks JavaScript
   * Bibliotecas
     * Bibliotecas JavaScript
   * Ferramentas
     * Repositórios Git
 * Tabelas
   * Tabela de Cores HTML
 * Blog
 * Cursos


PUBLICIDADE




MARCADORES

 * JavaScript 22
 * React + TypeScript 1
 * CSS + HTML 8
 * PHP+MySQL 4
 * React 7
 * HTML 9
 * Netbeans + Bitbucket 1
 * Python 1
 * JSON 1
 * PHP+JSON 1
 * HeidiSQL 1
 * CSS 14
 * JavaScript + CSS 5
 * phpMyAdmin 1
 * JavaScript + HTML 7
 * Requisição AJAX 1
 * Wamp Server 1
 * C++ 1
 * Netbeans 3
 * PHP + JavaScript 5


ÁREA DO USUÁRIO



Acessar
 * Perdeu o acesso?



Esse treinamento eu recomendo



Aprenda a ser um programador mais do que completo


DOAÇÕES

Por favor, ajude o nosso site a se manter online :)

 Obrigado!
Angelo Luis Ferreira
angelo.alf@gmail.com




ARTIGOS RELACIONADOS

 * Como limitar textos com número de caracteres usando PHP
 * Como subtrair ou somar dias de uma data qualquer - PHP
 * Como pegar número de Likes do Facebook com PHP
 * Passar variável JavaScript para PHP
 * Passar variável PHP para JavaScript


PRODUZIDO POR:




SITE DO GRUPO




VISITAS

Hoje237
Ontem603
Semana2310
Mês237
Total1144182

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


INFORMAÇÕES

 * IP: 80.255.7.101
 * Browser: Chrome
 * Browser Version: 122.0.6261.94
 * Operating System: Windows

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


QUEM ESTÁ ONLINE?

14
Online

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

01-03-24

Copyright © 2016 - 2021 Squids.com.br All rights reserved.

Produzido por Visual Dicas

Topo JavaScript is currently disabled.Please enable it for a better experience
of Jumi.