3v4l.org

run code in 300+ PHP versions simultaneously
<?php function isAlive($services) { foreach ($services as $address => $port) { $service = array( "address" => $address, "port" => $port, "errno" => "", "errstr" => "", "alive" => false ); $sock = @fsockopen($address, $port, $service["errno"], $service["errstr"], 5); if ($sock) { fprintf($sock, "GET / HTTP/1.0\r\n"); fprintf($sock, "\r\n"); $service["response"] = stream_get_contents($sock); if ($service["response"]) { $service["alive"] = true; } fclose($sock); } yield $service; } } $services = array( "php.net" => 80, "explain.so" => 80, "do1asdasdas.net" => 80 ); foreach (isAlive($services) as $service) { if (!$service["alive"]) { printf( "%s:%d: failure (%d) %s\n", $service["address"], $service["port"], $service["errno"], $service["errstr"]); } else { printf( "%s:%d: alive: %d bytes\n", $service["address"], $service["port"], strlen($service["response"])); } } ?>
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
php.net:80: failure (0) php_network_getaddresses: getaddrinfo for php.net failed: System error explain.so:80: failure (0) php_network_getaddresses: getaddrinfo for explain.so failed: System error do1asdasdas.net:80: failure (0) php_network_getaddresses: getaddrinfo for do1asdasdas.net failed: System error
Output for 5.5.0 - 5.5.38, 5.6.0 - 5.6.38, 7.0.0 - 7.0.32, 7.1.0 - 7.1.25, 7.2.0 - 7.2.13, 7.3.0 - 7.3.12, 7.3.32 - 7.3.33, 7.4.0, 7.4.26 - 7.4.33, 8.0.13 - 8.0.30
php.net:80: failure (0) php_network_getaddresses: getaddrinfo failed: System error explain.so:80: failure (0) php_network_getaddresses: getaddrinfo failed: System error do1asdasdas.net:80: failure (0) php_network_getaddresses: getaddrinfo failed: System error
Output for 7.2.29 - 7.2.33, 7.3.16 - 7.3.31, 7.4.3 - 7.4.25, 8.0.0 - 8.0.12
php.net:80: failure (0) php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution explain.so:80: failure (0) php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution do1asdasdas.net:80: failure (0) php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
Output for 5.4.0 - 5.4.45
Parse error: syntax error, unexpected '$service' (T_VARIABLE) in /in/mMmXU on line 23
Process exited with code 255.
Output for 4.4.2 - 4.4.9, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29
Parse error: syntax error, unexpected T_VARIABLE in /in/mMmXU on line 23
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1, 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_VARIABLE in /in/mMmXU on line 23
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/mMmXU on line 23
Process exited with code 255.

preferences:
233.82 ms | 401 KiB | 424 Q