Bonjour,
J'ai posté sous php, car c'est dans un script php que je galère.
Je n'arrive pas à obtenir le contenu json renvoyé par ce lien qui fonctionne dans le navigateur :
https://www.prevision-meteo.ch/servi...6.259lng=5.235
comme indiqué sur leur site :
https://prevision-meteo.ch/services
J'ai parcouru plusieurs forums, j'ai essayé de nombreuses possibilités, ça ne fonctionne toujours pas.
Grosso modo voir le résumé ci-dessous :
Depuis début mai, j'ai écris plusieurs fois au site, aucune réponse depuis.
J'ai téléchargé le fichier "cacert.pem" depuis
https://curl.haxx.se/ca/cacert.pem
que j'ai mis à la racine C:\cacert.pem et j'ai modifié le fichier php.ini en ajoutant openssl.cafile="C:\cacert.pem"
pour
Code : Sélectionner tout - Visualiser dans une fenêtre à part $lien = 'https://www.prevision-meteo.ch/services/json/lat=46.259lng=5.235';
et pour
Code : Sélectionner tout - Visualiser dans une fenêtre à part $data = file_get_contents($lien);
j'obtiens le même message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $arrContextOptions=array( "ssl"=>array( "verify_peer"=>false, "verify_peer_name"=>false, ), ); $data = file_get_contents($lien, false, stream_context_create($arrContextOptions));
Warning: file_get_contents() [function.file-get-contents]: SSL operation failed with code 1. OpenSSL Error messages: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version in C:\EasyPHP-5.3.8.1\www\monfichier.php
Warning: file_get_contents() [function.file-get-contents]: Failed to enable crypto in C:\EasyPHP-5.3.8.1\www\monfichier.php
Warning: file_get_contents(https://www.prevision-meteo.ch/services/json/lat=46.259lng=5.235) [function.file-get-contents]: failed to open stream: operation failed in C:\EasyPHP-5.3.8.1\www\monfichier.php
Par contre avec
je n'ai plus de message d'erreur, je n'affiche rien et vardump($data) me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function getSSLPage($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSLVERSION,3); $result = curl_exec($ch); curl_close($ch); return $result; } $data = getSSLPage($lien);
Je ne retrouve plus le site où ils proposaient de définir un header, mais l'ayant essayé, il n'y avait toujours pas de résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <pre dir='ltr'>boolean <font color='#75507b'>false</font></pre>
Peut-être est-ce là la solution et que je l'avais mal comprise en la recopiant ?
J'ai fait aussi une recherche google avec Warning: file_get_contents(https://www.prevision-meteo.ch/services/json, il me retourne de nombreux site, et quand je les visite, l'erreur n'est plus ni affichée, ni dans le source de la page reçue (ctrl u).
Merci d'avance pour vos réponses.
Partager