get_headers(): SSL operation failed with code 1
That error occurs when you're trying to access a URL without a valid SSL certificate. You can work around this by overriding the default stream context, which will affect all subsequent file operations (including remote URLs)
<?php
stream_context_set_default( [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
]);
print_r(get_headers('https://200.35.78.130/'));
Alternatively, if you're using PHP 7.1+, you can create a temporary context using stream_context_create
and pass it directly to the function, to avoid overriding the default:
$context = stream_context_create( [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
]);
print_r(get_headers('https://200.35.78.130/', 0, $context));
Thanks to Matthijs Wessels in the comments for pointing it out.