0
I’m trying to save and search information inside a json file using php, my problem is that when I add more than one record in the file, when I use json_decode is returned to me null. I want to know if the problem is happening when I input the data, or if that’s when I read this data.
users.json content:
{"usuarios":{"username":"Lucas","data":"30\/04\/19"}},{"usuarios":{"username":"csa","data":"30\/04\/19"}}
Class responsible for collecting information
<?php
// Essa classe tem 2 funçoes salvar o usuario ou retornar os dados do usuario
class serverControl{
private $path;
public function __construct(){
$path = dirname(__FILE__) . '\\';
$this->path = $path;
}
public function buscaDados($arq){
if(empty($arq)):
return 'Erro parametros passados são invalidos';
endif;
$arq = $this->path . $arq . '.json';
if(!file_exists($arq)):
return 'Erro arquivo '.$arq.' não pode ser lido ou não exite';
endif;
$arq = file_get_contents($arq);
$arqArray = json_decode($arq, true);
return $arqArray;
}
public function salvarDados($d, $i,$arq){
if(empty($d) & empty($i) & empty($arq)):
return 'Erro Parametros passados são invalidos';
endif;
$arq = $this->path . $arq . '.json';
if (!file_exists($arq)):
return 'O arquivo '.$arq .' a ser modificado não exite';
endif;
// Adiciona o identificador
$dados = array($i => $d);
// Tranforma o array $dados_identificador em JSON
$dados_json = json_encode($dados);
// "a" indicar que o arquivo é aberto para ser escrito
$fp = fopen($arq, "a");
// Escreve o conteúdo JSON no arquivo
$escreve = fwrite($fp, $dados_json);
// Fecha o arquivo
fclose($fp);
return true;
}
}
This JSON is not valid... what comes in this $i => $d?
– Diego Schmidt
The user identifier
– Lukas Takahashi