Aguarde...

25 de junho de 2020

Como criar, gravar, ler e excluir arquivos no PHP

Como criar, gravar, ler e excluir arquivos no PHP

Neste tutorial, vamos aprender a lidar com arquivos em PHP. Vou mostrar como criar, ler, escrever e excluir arquivos no PHP usando as funções internas de manipulação de arquivos.

A manipulação de arquivos é algo que você precisará fazer com muita frequência como desenvolvedor de PHP.

Você pode usar as funções de manipulação de arquivos PHP para manipular arquivos de maneiras diferentes. Essas funções podem ser usadas para criar recursos em seus aplicativos, que variam desde o log de erros personalizado até o armazenamento de arquivos em cache. Exemplos de ferramentas utilitárias que você pode construir com essas funções são:

  • ferramentas de log e depuração personalizadas
  • armazenamento de configuração de aplicativo
  • cache de front-end e aplicativo
  • suporte de localização
  • e muitos mais

O PHP fornece várias funções de manipulação de arquivos que permitem executar várias operações, como:

  • crie e abra um arquivo
  • escrever em um arquivo
  • ler de um arquivo
  • excluir um arquivo
  • fechar um arquivo

Hoje, passaremos por toda e qualquer operação de arquivo, junto com exemplos de como usá-los. Gostaria de encorajá-lo a experimentar os exemplos deste tutorial à medida que avança, para que você possa realmente aprender e entender como eles funcionam. E se algo não funcionar conforme o esperado para você, sinta-se à vontade para postar suas consultas usando o feed no final deste tutorial.

Como criar e abrir um arquivo

Nesta seção, veremos como criar e abrir um arquivo.

Quando se trata de criar um arquivo, é a fopenfunção que você acaba usando a maior parte do tempo. Pode parecer um pouco confuso usar a fopenfunção para criar um arquivo. De fato, a fopenfunção faz duas coisas: cria um arquivo se não existir e também o abre para leitura ou gravação.

Vamos seguir o exemplo a seguir para entender como funciona.

123<?php$file_handle = fopen('/home/tutsplus/files/tmp.txt', 'w');?>

No exemplo acima, a fopenfunção verificará se o arquivo /home/tutsplus/files/tmp.txt existe e, se existir, será aberto para gravação. Fornecendo 'w'o segundo argumento, especificamos que iremos escrever no arquivo. Se o arquivo não existir, ele será criado imediatamente. É importante observar aqui que o diretório / home / tutsplus / files / no exemplo acima deve ser gravável pelo usuário do servidor da Web para que a fopenfunção possa criar um arquivo.

O primeiro argumento da fopenfunção é o nome do arquivo que você deseja abrir. No exemplo acima, fornecemos o nome do arquivo /home/tutsplus/files/tmp.txt no primeiro argumento. Novamente, é importante observar que fornecemos um nome de caminho absoluto.

O segundo argumento é o modo , que especifica o tipo de acesso necessário ao arquivo aberto. A fopenfunção fornece modos diferentes para você escolher. Por exemplo:

  • use o rmodo para abrir um arquivo para leitura
  • r+modo de leitura e escrita
  • a modo para ler e anexar

Em nosso exemplo, usamos o wmodo, que abre o arquivo /home/tutsplus/files/tmp.txt apenas para gravação. Sinta-se livre para consultar a documentação oficial e ver os diferentes modos suportados pela fopenfunção.

fopen retorna um ponteiro do sistema de arquivos, usado para outras funções de arquivo, como leitura e gravação.

Como posso abrir arquivos remotos?

fopenfunção não é apenas para arquivos locais. Ele também suporta outros protocolos e pode abrir arquivos de outros lugares na sua rede ou na web. Se você ativou a allow_url_fopendiretiva no PHP, também poderá abrir arquivos remotos.

123<?php$file_handle = fopen('https://your-website-url/tmp.txt', 'r');?>

É realmente importante observar que, quando você habilita a allow_url_fopendiretiva, está criando alguns riscos à segurança, pois ela abre a porta para a execução remota de arquivos e outros ataques. Portanto, certifique-se de tomar medidas de segurança extras em seu aplicativo se você deseja ativar esta diretiva.

Como gravar em um arquivo com PHP

Existem algumas maneiras diferentes de escrever em um arquivo com PHP.

fwritefunção

Em primeiro lugar, é a fwritefunção, que permite gravar o conteúdo da string no fluxo de arquivos referenciado pelo identificador de arquivo. Vamos seguir o exemplo a seguir para entender como funciona.

1234567<?php$file_handle = fopen('/home/tutsplus/files/tmp.txt', 'a+');fwrite($file_handle, 'Tuts+ is a great online resource to learn skills you want!');fwrite($file_handle, "\n");fwrite($file_handle, 'Visit tutsplus.com to know more!');fclose($file_handle);?>

Primeiro, abrimos o arquivo /home/tutsplus/files/tmp.txt com o a+modo, que o abre para leitura e gravação, com o ponteiro do arquivo no final do arquivo. Assim, nosso conteúdo será anexado ao final do arquivo, após qualquer outro conteúdo. Em seguida, usamos a fwritefunção para escrever uma string. 

O primeiro argumento da fwritefunção é o ponteiro do sistema de arquivos retornado por fopen– é assim que se fwrite sabe onde escrever. E o segundo argumento é uma string que queremos escrever em um arquivo. Como você pode ver no exemplo acima, você pode usar a fwritefunção várias vezes para escrever uma série de cadeias antes de fechar o arquivo.

Finalmente, usamos a fclosefunção para fechar o arquivo. É preciso apenas um argumento, o ponteiro do arquivo que você deseja fechar. É sempre uma boa prática fechar arquivos usando a fclosefunção depois de concluir as operações do arquivo.

file_put_contentsFunção: Um Atalho PHP para Gravar Arquivos

Na seção anterior, discutimos a fwritefunção, que é usada para gravar em um arquivo. Você deve ter notado que, se quiser gravar em um arquivo, é necessário abri-lo com a fopenfunção em primeiro lugar. Depois disso, você precisará usar a fwritefunção para gravar seus dados em um arquivo e, finalmente, usar a fclosefunção para fechar o arquivo.

Se isso soa muito para você, há um atalho: file_put_contents. A file_put_contentsfunção permite gravar dados em um arquivo em uma única chamada.

Vamos ver como isso funciona.

123<?phpfile_put_contents('/home/tutsplus/files/tmp.txt', "Tuts+ is a great online resource to learn skills you want! \n Visit tutsplus.com to know more!");?>

O primeiro argumento da file_put_contentsfunção é um nome de arquivo e o segundo argumento é uma string que você deseja gravar em um arquivo. Se o arquivo não existir, ele será criado.

Como você pode ver, a file_put_contentsfunção é um atalho quando você deseja gravar apenas um dado em um arquivo.

Como ler de um arquivo em PHP

Agora você sabe como criar e gravar em um arquivo. Nesta seção, mostrarei como ler um arquivo.

freadfunção

freadfunção permite ler de um arquivo. É semelhante fwrite, mas você precisa fornecer o comprimento em bytes que deseja ler.

Vamos dar uma olhada no exemplo a seguir para entender como funciona.

12345<?php$file_handle = fopen('/home/tutsplus/files/tmp.txt', 'r');$contents = fread($file_handle, filesize('/home/tutsplus/files/tmp.txt'));fclose($file_handle);?>

Como queremos ler do arquivo /home/tutsplus/files/tmp.txt , abrimos com o rmodo Em seguida, usamos a freadfunção para ler todo o conteúdo do arquivo na $contentvariável

O primeiro argumento da freadfunção é o ponteiro do sistema de arquivos, para que ele saiba de onde ler. O segundo argumento é o comprimento em bytes que você deseja ler de um arquivo. No nosso caso, queremos ler todo o conteúdo do arquivo /home/tutsplus/files/tmp.txt e, portanto, usamos a filesizefunção para medir o tamanho do arquivo.

file_get_contentsFunção: Um Atalho PHP para Leitura de Arquivos

Na seção anterior, discutimos a freadfunção, que permite ler um arquivo especificando o comprimento em bytes que você deseja ler. Se você quiser ler um arquivo inteiro de uma vez, há uma função que lhe permite fazer exatamente isso:  file_get_contents.

Vamos ver a file_get_contentsfunção em ação!

123<?php$contents = file_get_contents('/home/tutsplus/files/tmp.txt');?>

Como você pode ver, é bastante simples usar a file_get_contentsfunção – basta fornecer um nome de arquivo no primeiro argumento.

Como excluir um arquivo no PHP

Nesta última seção, veremos como você pode excluir arquivos. Para excluir um arquivo no PHP, use a unlinkfunção Vamos seguir um exemplo para ver como funciona.

1234567<?phpIf (unlink('/home/tutsplus/files/tmp.txt')) {// file was successfully deleted} else {// there was a problem deleting the file}?>

O primeiro argumento da unlinkfunção é um nome de arquivo que você deseja excluir. A unlinkfunção retorna TRUEou FALSE, dependendo se a operação de exclusão foi bem-sucedida.

Conclusão

Neste post, discutimos os conceitos básicos de manipulação de arquivos em PHP. Ao longo do artigo, discutimos diferentes operações que você pode executar usando funções de arquivo no PHP. Se você tiver alguma dúvida ou sugestão, poste-as usando o feed abaixo!

Postado em Blog
Escreva um comentário