php - remove - strip_tags()
PHP: comprueba si el servidor está fuera de línea y no muestra una advertencia en XAMPP (2)
Prueba este script
$fp = fsockopen("192.168.1.135", 443, $errno, $errstr, 0.4);
if (!$fp) {
echo "$errstr ($errno)<br />/n";
} else {
$out = "GET / HTTP/1.1/r/n";
$out .= "Host: 192.168.1.135/r/n";
$out .= "Connection: Close/r/n/r/n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
Actualmente estoy verificando si un servidor (en este caso 192.168.1.135) está en línea con este código php:
<?php
$fp = fsockopen("192.168.1.135", 443, $errno, $errstr, 0.4); //(line 47)
if (!$fp) {
echo "OFFLINE";
}
else{
echo "ONLINE";
}
?>
Tengo este código en mi propio servidor 192.168.1.130 usando XAMPP (en LAN, por supuesto)
Por lo tanto, si este servidor está fuera de línea, la salida será:
Warning: fsockopen(): in C:/xampp/htdocs/index.php on line 47
OFFLINE
solo debe estar "SIN CONEXIÓN". ¿Cómo mostrar simplemente fuera de línea sin la advertencia?
Creo que XAMPP me enviará la advertencia cuando el servidor no funcione. pero ¿cómo debo hacer para no mostrar la advertencia? No encuentro una configuración para esto en XAMPP, ¿alguien sabe?
si no, ¿cómo debo hacer la línea 47 correcta incluso cuando el servidor está inactivo (fuera de línea)?
Cuando el servidor está en línea, esto funcionará perfectamente.
Use el operador de silencio @
para suprimir la advertencia:
$fp = @fsockopen("192.168.1.135", 443, $errno, $errstr, 0.4); //(line 47)
Nota al pie: como puede ver, el operador @
suprimió la advertencia tal como lo había solicitado. Pero ten cuidado. También se suprimirá un mensaje como, por ejemplo, "No route to host". (Principalmente si su conexión de red no está disponible). Por lo tanto, no puede estar seguro de que el servidor está fuera de línea. También debe generar $errmsg
si fsockopen()
no puede ver el motivo.