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.







Répondre avec citation
Partager