如何从数组中获取数据并将其放入txt文件?
How to get data from an array and put it on txt file?
我向 API REST 发出了 json 请求并得到了以下结果:
{
respuesta:0,
marcaciones:[
{
codigo:18225611,
codigoFicha:"18225611",
rut:"18.225.611-0",
nombres:"CAMILA ANDREA",
apellidos:"ALVARADO VALENZUELA",
departamento:"Departamento de Reservas",
sucursal:"JN",
fechaHora:"2019-07-22T08:50:57",
tipo:0,
numeroReloj:2
},
{
codigo:18225611,
codigoFicha:"18225611",
rut:"18.225.611-0",
nombres:"CAMILA ANDREA",
apellidos:"ALVARADO VALENZUELA",
departamento:"Departamento de Reservas",
sucursal:"JN",
fechaHora:"2019-07-22T13:07:11",
tipo:1,
numeroReloj:2
},
{
codigo:18225611,
codigoFicha:"18225611",
rut:"18.225.611-0",
nombres:"CAMILA ANDREA",
apellidos:"ALVARADO VALENZUELA",
departamento:"Departamento de Reservas",
sucursal:"JN",
fechaHora:"2019-07-22T14:04:04",
tipo:0,
numeroReloj:2
}
]
}
我需要获取结果的所有值并将其附加到 txt 文件(按结果一行)
示例:(仅第一行):
18225611,18225611,18.225.611-0,CAMILA ANDREA,ALVARADO ALENZUELA,Departamento de Reservas,JN,2019-07-22T08:50:57,0,2
这是我目前尝试过的方法
<?php
//URL de la API
$url = 'https://app.relojcontrol.com/api/consultaMarcaciones/consulta';
$ch = curl_init($url);
$hoy = date("Y-m-d");
//Configurar petición en JSON para enviarla vía POST
$data = array(
'apiKey' => 'a945fd71f1ac828ac08e22a095ac3448',
'inicio' => $hoy.'T00:00:00',
'termino' => $hoy.'T23:59:59',
'identificador' => [
//"12.345.678-9"
]
);
$payload = json_encode($data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo $result;
//Transformar para PowerBi
$output = "resultados.txt";
file_put_contents($output, $result);
curl_close($ch);
?>
但这只是将整个结果放入 txt 文件中。我怎样才能把它变成我想要的格式?
第一步,将您从 API 获得的 json 数据转换为 json-decode:
$res = json_decode($result, true);
然后打开输出文件:
$fp = fopen($output, 'w');
然后,循环您的结果并使用 fputcsv:
将其插入到文件中
foreach($res["marcaciones"] as $e) {
fputcsv($fp, $e);
}
不要忘记在最后关闭文件:fclose($fp);
然后你就完成了。
我向 API REST 发出了 json 请求并得到了以下结果:
{
respuesta:0,
marcaciones:[
{
codigo:18225611,
codigoFicha:"18225611",
rut:"18.225.611-0",
nombres:"CAMILA ANDREA",
apellidos:"ALVARADO VALENZUELA",
departamento:"Departamento de Reservas",
sucursal:"JN",
fechaHora:"2019-07-22T08:50:57",
tipo:0,
numeroReloj:2
},
{
codigo:18225611,
codigoFicha:"18225611",
rut:"18.225.611-0",
nombres:"CAMILA ANDREA",
apellidos:"ALVARADO VALENZUELA",
departamento:"Departamento de Reservas",
sucursal:"JN",
fechaHora:"2019-07-22T13:07:11",
tipo:1,
numeroReloj:2
},
{
codigo:18225611,
codigoFicha:"18225611",
rut:"18.225.611-0",
nombres:"CAMILA ANDREA",
apellidos:"ALVARADO VALENZUELA",
departamento:"Departamento de Reservas",
sucursal:"JN",
fechaHora:"2019-07-22T14:04:04",
tipo:0,
numeroReloj:2
}
]
}
我需要获取结果的所有值并将其附加到 txt 文件(按结果一行)
示例:(仅第一行):
18225611,18225611,18.225.611-0,CAMILA ANDREA,ALVARADO ALENZUELA,Departamento de Reservas,JN,2019-07-22T08:50:57,0,2
这是我目前尝试过的方法
<?php
//URL de la API
$url = 'https://app.relojcontrol.com/api/consultaMarcaciones/consulta';
$ch = curl_init($url);
$hoy = date("Y-m-d");
//Configurar petición en JSON para enviarla vía POST
$data = array(
'apiKey' => 'a945fd71f1ac828ac08e22a095ac3448',
'inicio' => $hoy.'T00:00:00',
'termino' => $hoy.'T23:59:59',
'identificador' => [
//"12.345.678-9"
]
);
$payload = json_encode($data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo $result;
//Transformar para PowerBi
$output = "resultados.txt";
file_put_contents($output, $result);
curl_close($ch);
?>
但这只是将整个结果放入 txt 文件中。我怎样才能把它变成我想要的格式?
第一步,将您从 API 获得的 json 数据转换为 json-decode:
$res = json_decode($result, true);
然后打开输出文件:
$fp = fopen($output, 'w');
然后,循环您的结果并使用 fputcsv:
将其插入到文件中foreach($res["marcaciones"] as $e) {
fputcsv($fp, $e);
}
不要忘记在最后关闭文件:fclose($fp);
然后你就完成了。