<?php
function juntarArchivos($archivo1,$archivo2)
{
//ARHIVO 2 SOLAR
//356.25 W/M2
$txt2 = '';
$contenido2 = file_get_contents($archivo2); // Leemos el archivo
$lineas2 = preg_split('/\r\n|\n|\r/', trim($contenido2)); // Repartimos líneas en una matriz
foreach ($lineas2 as $pos2=>$linea2) // Recorremos matriz de líneas, sacando su posición y texto
{
list($txt2, $temp2a, $temp2b) = split('[. ]', $linea2); // Extraemos valor de la línea. Los deciamales y la unidad no los queremos para nada
}
//ARHIVO 1 METEO
$txt1 = '';
$contenido1 = file_get_contents($archivo1); // Leemos el archivo
$lineas1 = preg_split('/\r\n|\n|\r/', trim($contenido1)); // Repartimos líneas en una matriz
foreach ($lineas1 as $pos1=>$linea1) // Recorremos matriz de líneas, sacando su posición y texto
{
list($parametro1, $valor1) = split('=', $linea1); // Extraemos parámetro y valor de la línea
if ($parametro1 == '*SUN') // Si encontramos la radiacion
{
$txt1 = $valor1; // Guardamos el valor
$posicion1 = $pos1; // Guardamos su posición en la matriz
}
}
//Tenemos el valor real de la radiaccion solar ($txt2) y el no real ($txt1)
//Tenemos el completo de valores de la estacion en la matriz ($lineas1)
//Sabemos en posicion ($posicion1) de la matriz ($lineas1) tenemos que escribir el valor real ($txt2)
//SALIDA ARCHIVO 1 + ARCHIVO 2
if ($txt1 > '') // ¿Encontramos el parámetro solar no real?
{
if ($txt2 > '') // ¿Encontramos el parámetro solar real?
{
$lineas1[$posicion1] = '*SUN='.$txt2; // Sobreescribimos el valor
$salida = implode("\r\n", $lineas1);// Guardamos la matriz de vuelta a una variable plana
print $salida;//Imprimimos la informacion en pantalla para que el script de meteoclimatic la lea
}
}
}
//Datos a cambiar según el servidor donde trabajemos debemos cambiar las rutas y los nombres de los ficheros
$archivo_meteo = 'datos/meteoclimatic.html'; //Datos recibidos de la estacion meteorológica
$archivo_solar = 'datos/solar/solar.txt'; //Datos recibidos del Arduino Solar
if (file_exists($archivo_meteo))
{
if (file_exists($archivo_solar))
{
juntarArchivos($archivo_meteo,$archivo_solar);
}
}
?>