Appeler file_get_contents () avec https: // urls me donne l'erreur suivante:
warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
J'ai lu 10+ SO questions et toutes disent d'activer extension=php_openssl.dll
Je l'ai fait et j'ai toujours des problèmes ...
Quoi d'autre cela pourrait-il être?
Résolu
Pour résoudre cette erreur, vous devez installer le package OpenSSL
pour PHP sur votre webserver .
Sur un FreeBSD server, vous devrez peut-être installer le paquet suivant: php53_openssl
et redémarrer votre serveur Web.
Sur un Windows server, ouvrez votre fichier de configuration php.ini
et décommentez simplement la ligne suivante:
;extension=php_openssl
et redémarrez le serveur Web. L'erreur devrait être résolue.
Référence: Je l'ai appris de ce lien qui a fonctionné pour moi .., le crédit lui revient donc.} _
J'ai eu le même problème. J'essayais d'accéder au graphique de facebook. Ce n'était pas qu'il ne pouvait pas accéder à l'URL, c'était que Facebook renvoyait une erreur 400 parce que je ne transmettais pas de paramètres. Essayez de vous connecter à HTTPS sur un site disposant d'une connexion HTTPS opérationnelle. Par exemple. Essaye ça:
file_get_contents("https://www.namhost.com");
Si cela fonctionne, vous devez voir pourquoi la connexion HTTP à laquelle vous vous connectez échoue, car le problème n'est pas que vous ne pouvez pas vous connecter à HTTP, mais plutôt que ce à quoi vous vous connectez n'aime pas la demande.
Comme le disent les gens, vérifiez la configuration.
phpinfo.php
<?php
phpinfo();
?>
Recherchez OpenSSL sur la page Web. N'oubliez pas de redémarrer le serveur Web après avoir modifié le fichier php.ini.
Si vous ne pouvez pas utiliser file_get_contents () , utilisez plutôt cURL si disponible, c'est mieux à bien des égards et plus rapidement.
function url($url,$option = null) {
$cURL = curl_init();
if ($option) {
curl_setopt($cURL, CURLOPT_URL, $url.$option);
} else {
curl_setopt($cURL, CURLOPT_URL, $url);
}
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cURL, CURLOPT_AUTOREFERER, 1);
curl_setopt($cURL, CURLOPT_HTTPGET, 1);
curl_setopt($cURL, CURLOPT_VERBOSE, 0);
curl_setopt($cURL, CURLOPT_HEADER, 0);
curl_setopt($cURL, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($cURL, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($cURL, CURLOPT_DNS_USE_GLOBAL_CACHE, 0);
curl_setopt($cURL, CURLOPT_DNS_CACHE_TIMEOUT, 2);
$output['page'] = curl_exec($cURL);
$output['contentType'] = curl_getinfo($cURL, CURLINFO_CONTENT_TYPE);
curl_close($cURL);
return $output;
}
$page = url('https://example.com/','i/like/subfolders');