मुझे एक कदम और आगे बढ़ना है और यह निर्धारित करना है कि क्या मैं जिस साइट से जुड़ रहा हूं वह एसएसएल सक्षम है (एक परियोजना उपयोगकर्ता से उनके यूआरएल के लिए पूछती है और हमें यह सत्यापित करने की आवश्यकता है कि उन्होंने http या https साइट पर हमारे एपीआई पैक स्थापित किया है)।
यहां वह फ़ंक्शन है जो मैं उपयोग करता हूं - मूल रूप से, बस URL को cURL के माध्यम से यह देखने के लिए कॉल करें कि क्या https काम करता है!
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;
}
यह सबसे विश्वसनीय तरीका है जो मैंने पाया है कि अगर आप https का उपयोग नहीं कर रहे हैं (जैसा कि सवाल पूछता है), लेकिन यदि आप COULD (या यहां तक कि) का उपयोग कर रहे हैं तो https का उपयोग करें।
नोट: यह संभव है (हालांकि वास्तव में संभावना नहीं है ...) कि एक साइट में अलग-अलग http और https पृष्ठ हो सकते हैं (इसलिए यदि आपको http का उपयोग करने के लिए कहा जाता है, तो शायद आपको बदलने की आवश्यकता नहीं है ...) समान हैं, और शायद आपको खुद को फिर से जांचना चाहिए, लेकिन इस अतिरिक्त जांच का इसका उपयोग है (निश्चित रूप से जैसा कि मैंने कहा, उस परियोजना में जहां उपयोगकर्ता अपनी साइट की जानकारी इनपुट करता है और आप सर्वर साइड से सुनिश्चित करना चाहते हैं)