No estoy seguro de si es buena idea ir con curl_version()['ssl_version']
, (por ejemplo if (stripos(curl_version()['ssl_version'], "openssl") !== false) {
) como rizo dice aquí http://curl.haxx.se/docs/faq.html#Does_curl_work_build_with_other se puede utilizar otra biblioteca SSL de OpenSSL (que no tiene nada que ver con eso la extensión openssl separada, curl tiene su propia biblioteca openssl) tal como se describe aquí http://curl.haxx.se/libcurl/c/curl_version_info.html parece mejor ir con la verificación de máscara de bits CURL_VERSION_SSL en lugar de curl_version()['ssl_version']
. Tenga en cuenta que no todas esas constantes indicadas en el sitio oficial CURL están disponibles en php, pero sólo estas cuatro constantes:
[CURL_VERSION_IPV6] => 1
[CURL_VERSION_KERBEROS4] => 2
[CURL_VERSION_SSL] => 4
[CURL_VERSION_LIBZ] => 8
He probado esto en Windows mediante la desactivación de extensión "OpenSSL" en php.ini y se dio cuenta rizo no tiene nada para hacer con esa extensión de openssl separada, pero tiene su propio openssl, en otras palabras, deshabilitar la extensión de openssl no afecta a $ v ['ssl_version'] ;. Entonces, si desea comprobar si curl tiene soporte para ssl, no debe confiar en la existencia de esa extensión de openssl separada y más arriba le expliqué que tampoco debe confiar en curl_version()['ssl_version']
.La única manera confiable es CURL_VERSION_SSL comprobación de máscara de bits:
if (!curl_version()['features'] & CURL_VERSION_SSL) {
echo "SSL is not supported with this cURL installation.";
}
Se podía probarlo en contra dicen 'https: // google.com', si falla rizo, entonces se puede detectar el error, y saber que no está instalado . (no tengo idea si esto realmente funcionaría) – Ben
Estoy buscando alguna solución programática similar a la extensión_cargada() o tal vez para probar si alguna constante está disponible. – Dmitri