Bueno... para si tras el *SUN= no hay un número o si lo hay (independientemente de cuál esté) podemos hacer una expresión regular que abarque ambos casos:
$archivo_meteo = preg_replace('/\*SUN=\d*/', '*SUN='.$valor_solar, $archivo_meteo); //Ponemos el valor solar en la plantilla
Sustituimos str_replace por preg_replace que nos permite encontrar patrones de expresiones regulares y sustituirá tanto si hay un espacio en blanco como si hay un número con un cifra o de más de una cifra (a efectos prácticos tanto el 0 como cualquier valor de radiación solar que pudiera haber).
A ver mañana si lo vemos ya en acción. Si va dando buenos valores lo pondremos para que salga en el mapa de radiación solar de CYL.
Saludos
jolín! Como pilotas el php que tío!!! esa expresión es buenísima también si... hay foreros que tiene el panel solar y la estación le entrega datos pero no son datos reales son mas bien datos interpretados y extrapolados. Podrían usar este arduino y precisar sustituir esos datos por los reales del arduino.
Acabo de probar ese nuevo código y efectivamente funciona a la perfección con gente que entregue algún valor para el parámetro de radiación solar *SUN=
Dejo aquí el código completo por si alguien lo necesita:
<?php
//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
$archivo_meteo = file_get_contents($archivo_meteo); //Leemos plantilla de meteoclimatic
if (file_exists($archivo_solar)){
$archivo_solar = file_get_contents($archivo_solar); //Leemos dato solar del archivo
$valor_solar = intval($archivo_solar); //Extraemos número entero del valor de radiación solar
$archivo_meteo = preg_replace('/\*SUN=\d*/', '*SUN='.$valor_solar, $archivo_meteo); //Ponemos el valor solar en la plantilla
}
print $archivo_meteo;
?>