Я не уверен, стоит ли идти с curl_version()['ssl_version']
, (например, if (stripos(curl_version()['ssl_version'], "openssl") !== false) {
)
как здесь говорится в локоне http://curl.haxx.se/docs/faq.html#Does_curl_work_build_with_other
он может использовать другую библиотеку ssl, кроме OpenSSL (которая не имеет ничего общего с этим отдельным расширением openssl, curl имеет свою собственную библиотеку openssl)
поэтому, как описано здесь http://curl.haxx.se/libcurl/c/curl_version_info.html, лучше использовать проверку битовой маски CURL_VERSION_SSL, а не curl_version()['ssl_version']
. Обратите внимание, что не все из этих констант, указанных на официальном сайте cURL, доступны в php, но только эти четыре константы:
[CURL_VERSION_IPV6] => 1
[CURL_VERSION_KERBEROS4] => 2
[CURL_VERSION_SSL] => 4
[CURL_VERSION_LIBZ] => 8
Я протестировал это в Windows, отключив расширение "openssl" в php.ini и заметил, что curl не имеет ничего общего с этим отдельным расширением openssl, но у него есть свой собственный openssl, другими словами, отключение расширения openssl не влияет на $ v [ 'ssl_version'] ;. Поэтому, если вы хотите проверить, есть ли в curl поддержка ssl, вам не следует полагаться на существование этого отдельного расширения openssl, и, как я объяснил выше, вы не должны полагаться и на curl_version()['ssl_version']
. Единственный надежный способ - проверка битовой маски CURL_VERSION_SSL:
if (!curl_version()['features'] & CURL_VERSION_SSL) {
echo "SSL is not supported with this cURL installation.";
}