
reemplazar contenido de un .json con php
Publicado por Ariel (4 intervenciones) el 07/05/2023 10:51:27
Hola, estoy intentando crear una api basada en php para el almacenamiento de variables en formato String, aquí les dejo el código:
mi problema es la lectura/escritura, la idea es que al hacer una consulta a la api, lea el archivo .json, lo decodifique en formato array (de dos niveles), lea o escriba en esta decodificación las variables y posteriormente, lo vuelva a codificar y gravar en el archivo, reescribiendo este mismo, pero, en el .json, se me mantiene la array anterior y se le añade la nueva, impidiendo la correcta lectura del archivo.
alguna idea sobre que puedo hacer?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
$Mykey = "9dP5f60A";
$StrVar = $_GET["StrVar"];
$Key = $_GET["Key"];
$StrReturn = "";
if($Key == $Mykey){
$StrVarCut = explode(":", $StrVar);
$JsonFileName = "./bd.json";
$JsonFile = fopen($JsonFileName, "r+");
$JsonIn = fread($JsonFile, filesize($JsonFileName));
$StrVarArray = json_decode($JsonIn,true);
foreach($StrVarCut as $StrVarCutItm){
$StrVarCutItm_ID = substr($StrVarCutItm, 0, 6);
$StrVarCutItm_Var = substr($StrVarCutItm, 6, 2);
$StrVarCutItm_Opt = substr($StrVarCutItm, 8, 1);
$StrVarCutItm_Val = substr($StrVarCutItm, 9);
if($StrVarCutItm_ID != "" && $StrVarCutItm_Opt != "" && $StrVarCutItm_Var != ""){
if($StrVarCutItm_Opt == "?"){
$StrReturn = $StrReturn.$StrVarCutItm_ID.$StrVarCutItm_Var."!".$StrVarArray[$StrVarCutItm_ID][$StrVarCutItm_Var].":";
}
elseif($StrVarCutItm_Opt == "!"){
$StrVarArray[$StrVarCutItm_ID][$StrVarCutItm_Var] = $StrVarCutItm_Val;
//$StrVarCutItm_ID.$StrVarCutItm_Var."!".$StrVarArray[$StrVarCutItm_ID][$StrVarCutItm_Var].":";
}
}
}
echo $StrReturn;
fwrite($JsonFile, json_encode($StrVarArray));
fclose($JsonFile);
}
?>
mi problema es la lectura/escritura, la idea es que al hacer una consulta a la api, lea el archivo .json, lo decodifique en formato array (de dos niveles), lea o escriba en esta decodificación las variables y posteriormente, lo vuelva a codificar y gravar en el archivo, reescribiendo este mismo, pero, en el .json, se me mantiene la array anterior y se le añade la nueva, impidiendo la correcta lectura del archivo.
alguna idea sobre que puedo hacer?
Valora esta pregunta


0