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 fopen
função que você acaba usando a maior parte do tempo. Pode parecer um pouco confuso usar a fopen
função para criar um arquivo. De fato, a fopen
funçã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 fopen
funçã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 fopen
função possa criar um arquivo.
O primeiro argumento da fopen
funçã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 fopen
função fornece modos diferentes para você escolher. Por exemplo:
- use o
r
modo para abrir um arquivo para leitura - o
r+
modo de leitura e escrita a
modo para ler e anexar
Em nosso exemplo, usamos o w
modo, 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 fopen
funçã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?
A fopen
funçã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_fopen
diretiva 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_fopen
diretiva, 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.
A fwrite
função
Em primeiro lugar, é a fwrite
funçã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 fwrite
função para escrever uma string.
O primeiro argumento da fwrite
funçã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 fwrite
função várias vezes para escrever uma série de cadeias antes de fechar o arquivo.
Finalmente, usamos a fclose
funçã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 fclose
função depois de concluir as operações do arquivo.
A file_put_contents
Função: Um Atalho PHP para Gravar Arquivos
Na seção anterior, discutimos a fwrite
funçã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 fopen
função em primeiro lugar. Depois disso, você precisará usar a fwrite
função para gravar seus dados em um arquivo e, finalmente, usar a fclose
função para fechar o arquivo.
Se isso soa muito para você, há um atalho: file_put_contents
. A file_put_contents
função permite gravar dados em um arquivo em uma única chamada.
Vamos ver como isso funciona.
123 | <?php file_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_contents
funçã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_contents
funçã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.
A fread
função
A fread
funçã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 r
modo Em seguida, usamos a fread
função para ler todo o conteúdo do arquivo na $content
variável
O primeiro argumento da fread
funçã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 filesize
função para medir o tamanho do arquivo.
A file_get_contents
Função: Um Atalho PHP para Leitura de Arquivos
Na seção anterior, discutimos a fread
funçã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_contents
funçã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_contents
funçã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 unlink
função Vamos seguir um exemplo para ver como funciona.
1234567 | <?php If (unlink( '/home/tutsplus/files/tmp.txt' )) { // file was successfully deleted } else { // there was a problem deleting the file } ?> |
O primeiro argumento da unlink
função é um nome de arquivo que você deseja excluir. A unlink
função retorna TRUE
ou 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!