[Php] Impossible de trouver le transport de socket "https"


Answers

Décommentez la ligne: extension=php_openssl.dll dans php.ini

Question

J'utilise ceci pour vérifier la disponibilité d'une URL:

$fp = fsockopen($url, 443, $errno, $errstr);

et je reprends cette erreur ...

Attention: fsockopen () [function.fsockopen]: impossible de se connecter à https://example.com/soapserver.php:443 (Impossible de trouver le transport de socket "https" - avez-vous oublié de l'activer lorsque vous avez configuré PHP? ) dans C: \ Home etc etc ....

J'utilise un serveur IIS btw (non, ce n'est pas mon cas!), Donc je pense que cela n'a rien à voir avec open-ssl, mais je ne suis pas sûr. Quelqu'un peut-il aider s'il vous plaît?

J'ai fait un phpinfo () et j'ai SSL, mais sur IMAP et CURL, c'est tout.

Des idées?




Passer à ssl:// fonctionné pour moi mais j'ai continué à recevoir une réponse BAD REQUEST. J'ai trouvé que je devais ajouter une ligne supplémentaire pour déclarer explicitement mon en-tête d'hôte comme décrit here et m'assurer que j'ai mis à jour mon HTTP de HTTP/1.0 à HTTP/1.1 :

$header .= "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Host: www.sandbox.paypal.com\r\n";



Disons que vous vouliez vous emparer de NY Times, qui applique HTTPS:

Incorrect:

$client = stream_socket_client('https://www.nytimes.com', $errno, $errstr, 30);

Correct:

$client = stream_socket_client('tcp://www.nytimes.com:443', $errno, $errstr, 30);

Remarque J'ai remplacé https:// par tcp:// et ajouté le port 443 au nom d'hôte.

Je suppose que nous pouvons dire que stream_socket_client() ne parle pas d'URL.




Links