Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/03/2011, 18h35   #1
Invité de passage
 
Homme Boris
ingénieur energie
Inscription : mars 2011
Messages : 18
Détails du profil
Informations personnelles :
Nom : Homme Boris
Localisation : France

Informations professionnelles :
Activité : ingénieur energie
Secteur : Service public

Informations forums :
Inscription : mars 2011
Messages : 18
Points : 2
Points : 2
Par défaut Problème fonction file() sur hébergeur

Bonjour,

Je cherche à lire des données contenues dans une URL de google contenant les géolocalisations d'une adresse donnée.

En local tout fonctionne :
L'URL en question affiche par exemple "200,8,48.8836443,2.3251852".
Il est lu avec file() afin de pouvoir ensuite traiter les données :

Code :
1
2
3
4
5
6
7
 
$url = "http://maps.google.com/maps/geo?q=".urlencode($adresse).
"&output=csv&key=".$apiKey;
 
    $csv = file($url);
    $donnees = split(",",$csv[0]);
    return $donnees[3];
En local ca fonctionne, mais sur l'hébergeur j'ai un warning :
Warning: file() [function.file]: URL file-access is disabled in the server configuration in /homepages/...../page.php on line 38
et ca ne fonctionne pas.

Merci d'avance de votre aide

Un phpinfo sur l'hébergeur donne : PHP Version 5.2.17
borisman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2011, 18h49   #2
Membre du Club
 
Inscription : juin 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 30
Points : 43
Points : 43
salut,

au vue du message la conf serveur ne te permettera pas de le faire ainsi.

peut être avec cURL ?

des exemples avec google

@+
moogli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2011, 19h19   #3
Invité de passage
 
Homme Boris
ingénieur energie
Inscription : mars 2011
Messages : 18
Détails du profil
Informations personnelles :
Nom : Homme Boris
Localisation : France

Informations professionnelles :
Activité : ingénieur energie
Secteur : Service public

Informations forums :
Inscription : mars 2011
Messages : 18
Points : 2
Points : 2
Effectivement, après recherche il semble que le allow_url_fopen du fichier de configuration php.ini soit désactivé pour des raisons de sécurité.
J'ai donc (et merci du coup de pouce) utilisé Curl. Et la ça marche.

Curl lit l'URL et écrit le contenu dans un fichier texte. On lit et traite ensuite le contenu de ce fichier texte avec la foncion file(), qui cette fois lit un fichier du serveur.

Voici pour info ce que ca donne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
$url = "http://www.xxx.com"
$ch = curl_init($url);
$fp = fopen("coordx.txt", "w");
 
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
 
$csv = file("coordx.txt");
$donnees = split(",",$csv[0]);
return $donnees[2];
Merci !
borisman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2011, 20h56   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
pour lire du csv c'est avec fgetcsv (ducoup pas possible chez toi), ou avec str_getcsv (la fonction est assez facile a recrée)
je te de déconseille d’utilisé split parce que deja c'est pas split mais explode, et que dans l'n des champs il aussi possible d'avoir un virgule donc les données seront fausses, tu peux aussi utilise le format json avec google (php json_decode)
Impossible de changer la conf sur ton serveur ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h19.


 
 
 
 
Partenaires

Hébergement Web