Hola, hace mucho tiempo que no me pasaba por aquí, un saludo de nuevo a todos.
Estoy haciendo unas pruebas para mostrar si una página está caída o no con php y ping. Este es el código:
function ping($ip,$port)
{
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_nonblock($sock);
@socket_connect($sock,$ip,$port);
socket_set_block($sock);
switch(socket_select($r = array($sock), $w = array($sock), $f = array($sock), 5))
{
case 2:
$estado="Off";
break;
case 1:
$estado="On";
break;
case 0:
$estado="TimeOut";
break;
}
return $estado;
}
;?>
Y así le llamo:
<?php
echo Ping("xxx.xxx.xx.xx","80");
;?>
Cuando cargo la página me sale el siguiente texto triplicado tres veces:
Strict Standards: Only variables should be passed by reference in .. line...
La línea que me da error es la siguiente:
switch(socket_select($r = array($sock), $w = array($sock), $f = array($sock), 5))
La verdad es que por más que lo busco no encuentro la manera de solucionarlo. Entiendo que estoy llamando mal a la variable, pero no se cómo se debería quedar para que funcione bien. Muchas gracias por vuestra ayuda