How does SSL connection work and how can it be set up in PHP?

SSL (Secure Sockets Layer) is a protocol that ensures secure communication over a computer network. In PHP, you can set up an SSL connection by using the `stream_socket_client` function with the `ssl://` protocol and specifying the SSL context options. This allows you to establish a secure connection to a remote server using HTTPS.

$context = stream_context_create([
    'ssl' => [
        'verify_peer' => true,
        'verify_peer_name' => true
    ]
]);

$socket = stream_socket_client('ssl://example.com:443', $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);

if (!$socket) {
    die("Failed to connect: $errstr ($errno)");
}

fwrite($socket, "GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n");

while (!feof($socket)) {
    echo fgets($socket, 4096);
}

fclose($socket);