J'utilise ceci pour vérifier la disponibilité d'une URL:
$fp = fsockopen($url, 443, $errno, $errstr);
et j'obtiens cette erreur en retour ...
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é d'activer quand vous avez configuré PHP?) dans C:\Home etc etc ....
J'utilise un IIS serveur btw, (non ce n'est pas ce que je fais!), Donc je pense que cela a quelque chose à voir avec le fait de ne pas avoir 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?
aussi pour ssl vous devez préfixer l'hôte avec ssl: //
Décommentez la ligne: extension=php_openssl.dll
dans php.ini
Vous devriez utiliser uniquement le nom d'hôte, pas l'URL de l'appel fsockopen. Vous devrez fournir l'URI, moins l'hôte/le port, dans les en-têtes HTTP réels. Comme @Martijin l'a noté, et comme indiqué dans la page de manuel, vous devez préfacer votre nom d'hôte avec ssl: // pour SSL ou tls: // si vous utilisez la sécurité de la couche de transport.
Page de manuel pour fsockopen. Regardez l'exemple n ° 1.
Passer à ssl://
a fonctionné pour moi, mais j'ai continué à recevoir une réponse BAD REQUEST. J'ai constaté que je devais ajouter une ligne supplémentaire pour déclarer explicitement mon en-tête d'hôte comme décrit ici et m'assurer d'avoir 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";
Vérifiez curl installé ou non pour php . S'il n'est pas installé, installez curl . Pour Windows Décommentez la ligne: extension = php_openssl.dll dans php.ini, Pour Ubuntu Sudo apt-get install php -boucle