[ Foro de PHP ]

Extraer valores númericos de un array

13-Aug-2021 17:14
Raul Carbonell Rodrguez
1 Respuestas

Buenas tardes,

planteo un problema, necesito extraer números de un array el cual va a buscar unos valores a un archivo .env.
El problema es que quiero tratar ciertas posiciones del array como númerico para realizar comprobaciones de errores, pero el valor que extraigo siempre es un string.
Como puedo extraer los números sin que se modifique su valor y que sean de tipo int?

<?php
$fp = fopen(".env", "r");
$archivo=file('.env');
foreach($archivo as $linea => $valor){
$array = explode("=", $valor);
if($array[0] == "ip_web_server") $ip_web_server=$array[1];
if($array[0] == "hora_inicio_fw") $hora_inicio_fw=($array[1]);
if($array[0] == "hora_final_fw") $hora_final_fw=$array[1];
}
       //estas 3 lineas solo las uso para comprobar el tipo y salida de la variable.
echo gettype($hora_inicio_fw)."\n";
echo $hora_inicio_fw."\n" ;
var_dump(is_numeric($hora_inicio_fw));
fclose($fp);
?>

el archivo .env es el siguiente:

ip_web_server=10.1.11.153
hora_inicio_fw=00
hora_final_fw=06

Necesito que los valores de las variables de hora sigan teniendo 2 cifras y si los convierto a int pasan a valor 0 con una cifra.

Tampoco puedo usar la libreria "PHP dotenv" para leer archivos .env ya que debo usar este código en muchas máquinas centos que no se debe instalar nada.

Muchas gracias por adelantado.


14-Aug-2021 10:31
Nacho Cabanes (+82)

Desde el momento en que un valor se toma como entero, se te mostrará sin el posible 0 inicial. Si necesitas ese cero, la solución más sencilla es posiblemente comprobar si es menor que 10.

if ($valor < 10) echo "0";
echo $valor;


- Leerlo como cadena de texto






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)