How can I ping a server port with PHP?

Как пинговать определенные порты сервера с помощью PHP?

Вот простой пример кода

<?php
$wait = 1; // Ожидание в секундах
$host = 'server.com';
$ports = [
    'http'  => 80,
    'https' => 443,
    'ftp'   => 21,
];

foreach ($ports as $key => $port) {
    $fp = @fsockopen($host, $port, $errCode, $errStr, $wait);
    echo "Ping $host:$port ($key) ==> ";
    if ($fp) {
        echo 'Успешно';
        fclose($fp);
    } else {
        echo "Ошибка: $errCode - $errStr";
    }
    echo PHP_EOL;
}
?>

Результат будет такой

// Ping example.com:80 (http) ==> Успешно
// Ping example.com:443 (https) ==> Успешно
// Ping example.com:21 (ftp) ==> Ошибка: 110 - Connection timed out