IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème fonction file() sur hébergeur


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    ingénieur energie
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 10
    Points
    10
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre régulier Avatar de moogli
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 58
    Points : 102
    Points
    102
    Par défaut
    salut,

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

    peut être avec cURL ?

    des exemples avec google

    @+

  3. #3
    Membre à l'essai
    Homme Profil pro
    ingénieur energie
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    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 ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Problème fonction CountIfs sur plusieurs classeurs fermés
    Par Qril59 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/04/2013, 10h45
  2. [Débutant] Problème fonction file copy
    Par CLeBeR dans le forum VB.NET
    Réponses: 10
    Dernier message: 16/02/2012, 22h56
  3. Réponses: 16
    Dernier message: 15/05/2006, 15h49
  4. Réponses: 2
    Dernier message: 04/10/2005, 16h13
  5. Réponses: 2
    Dernier message: 20/08/2004, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo