Publicando JSON em disco com PHP

Utilizando uma função nativa do PHP conseguimos publicar dados de forma rápida e segura.

São diversos os motivos que nos levam a salvar dados em discos, como um simples arquivo de texto ou JSON. No PHP, podemos utilizar diferentes mecanismos para obter o mesmo resultado, então sempre verifique quais recursos estão disponíveis para a sua versão.

É importante se atentar aos níveis de permissão no diretório de publicação, pois se o usuário padrão não tiver permissão para escrita, o processo poderá falhar. Em caso de problemas, entre em contato com o administrador do servidor.

Para o nosso exemplo, vamos converter um array de itens de mercado para um JSON, como mostra o exemplo abaixo.

<?php

$array = [
    'frutas' => [
        'Banana',
        'Maça'
    ],
    'carnes' => [
        'Bife',
        'Frango'
    ]
];

$json = json_encode($array);

Agora nos resta publicar o arquivo, para isso vamos utilizar a função file_put_contents, passando no primeiro parâmetro o diretório e nome do arquivo, enquanto no segundo devemos informar a nossa string JSON.

file_put_contents('resources/mercado.json', $json);

Podemos informar no terceiro parâmetro o tipo de flag, como:

  • FILE_USE_INCLUDE_PATH - Procura o arquivo filename nos diretórios de include;
  • FILE_APPEND - Se o arquivo filename já existir, acrescenta os dados no arquivo ao invés de sobrescrevê-lo;
  • LOCK_EX - Adquire uma trava exclusiva no arquivo ao prosseguir para a escrita. Em outras palavras, uma chamada flock() acontece entre a chamada fopen() e a chamada fwrite(). Utilizamos esse valor quando precisamos travar o arquivo para que ninguém possa utiliza-lo enquanto nós estamos salvando as informações.
file_put_contents('resources/mercado.json', $json, LOCK_EX);

Finalizamos aqui mais um breve e prático conteúdo. A gente se vê em breve.

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Deixe um comentário