Je ne sais pas si elle est bonne idée d'aller avec curl_version()['ssl_version']
, (par exemple if (stripos(curl_version()['ssl_version'], "openssl") !== false) {
) comme boucle dit ici http://curl.haxx.se/docs/faq.html#Does_curl_work_build_with_other il peut utiliser d'autres bibliothèques ssl que OpenSSL (qui n'a rien à voir avec cette extension openssl séparée, curl a sa propre bibliothèque openssl) comme décrit ici http://curl.haxx.se/libcurl/c/curl_version_info.html il semble préférable d'aller avec CURL_VERSION_SSL vérifier le masque de bit plutôt que curl_version()['ssl_version']
. Notez que toutes les constantes indiquées sur le site Web de cURL officiel sont disponibles en php, mais seulement ces quatre constantes:
[CURL_VERSION_IPV6] => 1
[CURL_VERSION_KERBEROS4] => 2
[CURL_VERSION_SSL] => 4
[CURL_VERSION_LIBZ] => 8
J'ai testé ce sous Windows en désactivant l'extension « OpenSSL » dans php.ini et remarqué boucle n'a rien à faire avec cette extension openssl séparée mais elle a son propre openssl, en d'autres termes, la désactivation de l'extension openssl n'affecte pas $ v ['ssl_version'] ;. Donc, si vous voulez vérifier si curl a un support pour ssl, vous ne devriez pas compter sur l'existence de cette extension openssl séparée et au-dessus j'ai expliqué que vous ne devriez pas compter sur curl_version()['ssl_version']
non plus.Le seul moyen fiable est CURL_VERSION_SSL vérification de bitmask:
if (!curl_version()['features'] & CURL_VERSION_SSL) {
echo "SSL is not supported with this cURL installation.";
}
On peut tester contre dire: https: // google.com', si le froissement échoue, vous pouvez attraper l'erreur, et le savoir est pas installé . (Je n'ai aucune idée si cela fonctionnerait réellement) – Ben
Je cherche une solution programmatique similaire à extension_loaded() ou peut-être pour tester si une constante est disponible. – Dmitri