Page 1 sur 1

file_get_contents depuis un nas

Posté : 05 mai 2022, 18:00
par Kevin Le Gall
Bonjour à tous,

J'ai un nas DS220j, avec DSM 7.0-41890.
Sur celui-ci j'ai installé les paquets Webstation et PHP 7.4.
Je l'utilise pour moi même, notamment pour automatiser la création de mes devis, et autre.
Jusqu'ici aucun problème, PHP s’exécute bien, et je ne rencontre pas de difficultés.

Afin d'automatiser le calcul des distances vers mes lieux d'intervention je souhaite utiliser l'API google distance matrix via le script ci-dessous :

Code : Tout sélectionner

<form action="testapi.php"> Aller à : <input type="text" name="destination"> <input type="submit" name="submit" value="Get distance"> </form> <?php if (isset($_GET['submit'])) { $origin = 'Larçay 37270'; $destination = $_GET['destination']; $url='https://maps.googleapis.com/maps/api/distancematrix/json?destinations='.urlencode($destination).'&origins='.urlencode($origin).'&key=maclé&language=fr-Fr&sensor=false'; $distance_data = file_get_contents($url); var_dump($distance_data); echo '</br>'; print_r(error_get_last());
[/color]

J'obtiens l'erreur suivante : failed to open stream: No such file or directory [file] => /volume1/web/testapi.php [line] => 21 )
file_get_contents ne parviens pas à accéder à l'URL dont j'ai besoin, alors que depuis mon serveur OVH ce script fonctionne parfaitement !

Quelqu'un aurait-il une idée de ce qui pourrait se passer ? J

J'espère être précis dans ma demande, n'hésitez pas à me poser plus de questions si besoin,
Merci à tous,
Kevin

Re: file_get_contents depuis un nas

Posté : 05 mai 2022, 18:05
par or 1
si cela fait pareil avec :
file_get_contents("php-debutant/topic282853.html");
c'est que quelque chose bloque les connexions sortantes, un pare-feu par exemple.

Re: file_get_contents depuis un nas

Posté : 05 mai 2022, 18:34
par Kevin Le Gall
Bonjour or 1 ! et merci pour cette réponse, effectivement, j'obtiens également la même erreur :
file_get_contents(php-debutant/topic282853.html): failed to open stream: No such file or directory

Re: file_get_contents depuis un nas

Posté : 05 mai 2022, 18:36
par Kevin Le Gall
En revanche, avec :

Code : Tout sélectionner

$url='a.txt'; (a.txt est dans le même répertoire) $local = file_get_contents($url); echo $local; var_dump ($local); print_r(error_get_last());
Cela fonctionne parfaitement !

Re: file_get_contents depuis un nas

Posté : 05 mai 2022, 18:47
par ynx
Bonjour,

Il faut que l'option allow_url_fopen soit activée dans la configuration de php (le fichier php.ini) pour accéder aux fichiers distants avec file_get_contents/fopen.
https://www.php.net/manual/fr/filesyste ... -url-fopen

Utilise phpinfo() pour localiser le fichier de configuration php.ini et vérifier que cette option est bien activée.

Re: file_get_contents depuis un nas

Posté : 05 mai 2022, 19:00
par Kevin Le Gall
Bonjour à tous cela fonctionne avec curl !

Code : Tout sélectionner

$url='https://maps.googleapis.com/maps/api/distancematrix/json?destinations='.urlencode($destination).'&origins='.urlencode($origin).'&key=maclé&language=fr-Fr&sensor=false'; //Test curl echo 'Test Curl</br>'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_PROXYPORT, 3128); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $response = curl_exec($ch); curl_close($ch); var_dump($response); //Test curl

Re: [RESOLU] file_get_contents depuis un nas

Posté : 15 mai 2022, 12:09
par Kevin Le Gall
Je me rends compte que j'étais tellement content que ça fonctionne je n'ai pas partagé la solution en entier.
Par défaut curl n'est pas activé dans php sur webstation pour faire celà il faut effectuer la manip suivante :

aller dans web station > parametres du langage de script > modifier un profil php > extensions > cocher curl
Autre chose merci beaucoup ynx pour ta réponse !