<?php
/**
 * Retorna true se o servidor responder HTTP 200 OK,
 * caso contrário false. Só lê a primeira linha.
 */
function is200(string $url, int $timeout = 5): bool
{
    // ﻿Quebra a URL em partes
    $parts = parse_url($url);
    if (!$parts || !isset($parts['host'])) return false;

    $host = $parts['host'];
    $port = ($parts['scheme'] ?? 'http') === 'https' ? 443 : 80;
    $path = $parts['path']  ?? '/';
    $path .= isset($parts['query']) ? '?' . $parts['query'] : '';

    // Abre socket (http ou https)
    $fp = fsockopen(
        ($port === 443 ? "ssl://$host" : $host),
        $port,
        $errno,
        $errstr,
        $timeout
    );
    if (!$fp) return false;

    // Usa HEAD (mais rápido, não roda PHP pesado)
    fwrite($fp,
        "HEAD $path HTTP/1.1\r\nHost: $host\r\nConnection: close\r\n\r\n"
    );

    $status = fgets($fp, 128); // ex.: "HTTP/1.1 200 OK"
    fclose($fp);

    return str_contains($status, ' 200 ');
}

/* -------- uso -------- */
if (is200('http://teste.firebasecertification.com/update_teste.php')) {
    echo 'true';  // ✅ 200 OK
} else {
    echo 'false'; // ❌ qualquer outro código ou falha
}
