Saya memiliki kesempatan untuk melangkah lebih jauh dan menentukan apakah situs yang saya sambungkan memiliki kemampuan SSL (satu proyek menanyakan URL kepada pengguna dan kami perlu memverifikasi mereka telah menginstal paket API kami di situs http atau https).
Inilah fungsi yang saya gunakan - pada dasarnya, cukup panggil URL melalui cURL untuk melihat apakah https berfungsi!
function hasSSL($url)
{
// take the URL down to the domain name
$domain = parse_url($url, PHP_URL_HOST);
$ch = curl_init('https://' . $domain);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'HEAD'); //its a HEAD
curl_setopt($ch, CURLOPT_NOBODY, true); // no body
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // in case of redirects
curl_setopt($ch, CURLOPT_VERBOSE, 0); //turn on if debugging
curl_setopt($ch, CURLOPT_HEADER, 1); //head only wanted
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); // we dont want to wait forever
curl_exec($ch);
$header = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($header === 200) {
return true;
}
return false;
}
Ini adalah cara paling andal yang saya temukan tidak hanya untuk mengetahui JIKA Anda menggunakan https (seperti yang ditanyakan), tetapi jika Anda BISA (atau bahkan HARUS) menggunakan https.
CATATAN: adalah mungkin (meskipun tidak benar-benar mungkin ...) bahwa suatu situs dapat memiliki halaman http dan https yang berbeda (jadi jika Anda disuruh menggunakan http, mungkin Anda tidak perlu mengubah ..) Sebagian besar situs adalah sama, dan mungkin harus mengubah rute Anda sendiri, tetapi pemeriksaan tambahan ini telah digunakan (tentu saja seperti yang saya katakan, dalam proyek di mana pengguna memasukkan info situs mereka dan Anda ingin memastikan dari sisi server)