2017-03-09 1 views
0

Je fais une application qui s'occupe des publications, et je voulais faire en sorte qu'il soit en mesure de publier sur des domaines avec https:// même si la personne qui utilise l'application n'a pas l'extension php openssl. (Il les avertirait que leurs publications seraient effectuées de manière non sécurisée.)Comment faire une demande de sur HTTPS via file_get_contents() sans openssl en ne vérifiant pas ssl?

J'ai désactivé openssl et j'ai essayé ce qui suit, mais cela me donne une erreur: je n'ai pas d'encapsuleur https.

$arrContextOptions=array(
    "ssl"=>array(
     "verify_peer"=>false, 
     "verify_peer_name"=>false, 
    ), 
); 
echo file_get_contents('https://httpbin.org/get?test=test', true, stream_context_create($arrContextOptions)); 

Est-il possible de faire cette demande avec file_get_contents?

+0

possible dupliquer [file_get_contents(): opération SSL a échoué avec code 1. Et plus] (http://stackoverflow.com/questions/26148701/file-get-contents-ssl-operation-failed-with-code-1-and-more) –

+0

Je suis tombé sur cette question précédemment et comme vous pouvez voir m Le code y correspond directement à la réponse acceptée. – Alesana

+0

Non, il ne correspond pas à la réponse acceptée là le deuxième param a été mis à 'false' mais dans votre réponse est' true' –

Répondre

-1

Essayez ce code:

<?php 
$fp = fsockopen("ssl://somedomain/abc/", 2000 , $ErrNo, $ErrString, 30); 
if (!$fp) { 
    echo "Error No : $ErrNo - $ErrString <br />\n"; 
} else { 
    $out = "POST/HTTP/1.1\r\n"; 
    $out .= "Host: somedomain \r\n"; 
    $out .= "Content-Type: application/xml; charset=utf-8;\r\n"; 
    $out .= "Connection: Close\r\n\r\n"; 
    fwrite($fp, $out); 
    while (!feof($fp)) { 
     echo fgets($fp, 128); 
    } 
    fclose($fp); 
} 
?> 

Je file_get_contents recherche avec --no-check-certificat

readmore ici file_get_contents ignoring verify_peer=>false?