[RESOLU] file_get_contents depuis un nas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] file_get_contents depuis un nas

Re: [RESOLU] file_get_contents depuis un nas

par Kevin Le Gall » 15 mai 2022, 12:09

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 !

Re: file_get_contents depuis un nas

par Kevin Le Gall » 05 mai 2022, 19:00

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: file_get_contents depuis un nas

par ynx » 05 mai 2022, 18:47

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

par Kevin Le Gall » 05 mai 2022, 18:36

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

par Kevin Le Gall » 05 mai 2022, 18:34

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

par or 1 » 05 mai 2022, 18:05

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.

file_get_contents depuis un nas

par Kevin Le Gall » 05 mai 2022, 18:00

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