Projet localisation géographique

Eléphanteau du PHP | 21 Messages

07 juin 2007, 21:53

Parcourir le csv c'est rien.
C'est le même principe que je t'ai montré sauf qu'au lieu de mettre l'adresse "fichier.csv" ben tu mets : "site.com/fichier.csv".
Ceci dit, encore faut-il que le site n'est pas activé une sécurité pour éviter d'être aspiré ...

Le problème qui me fait déjà plus peur c'est que sur le site ou y'a la bdd d'ip, le fichier qui contient le csv est un zip ...

Donc faut dézipper avec PHP (forcément !). Je crois que c'est possible.
Faudrait voir de ce côté :

Donc en gros il te faut transférer le fichier zip sur ton serveur, le dézipper puis le parser (le parcourir quoi) avec PHP comme on l'avait fait précédemment.

Pour plus d'optimisation, lorsque tu aura parsé et que tu sera en train d'ajouter sur ta bdd, fais une condition qui voit si ce que tu es en train de mettre n'est pas ce qui est déjà présent. ça déchargera un peu l'appli (Sinon vu le nombre de ligne, je te raconte pas le lagg à chaques mises à jour ...)

ViPHP
ViPHP | 5924 Messages

07 juin 2007, 22:12

Pour plus d'optimisation, lorsque tu aura parsé et que tu sera en train d'ajouter sur ta bdd, fais une condition qui voit si ce que tu es en train de mettre n'est pas ce qui est déjà présent. ça déchargera un peu l'appli (Sinon vu le nombre de ligne, je te raconte pas le lagg à chaques mises à jour ...)
Ce serait plus long encore. Parce que dans ce cas, il faudrait faire un SELECT à chaque fois ou rechercher dans un tableau de taille faramineuse... Alors que si les données sont déjà dans la base, le serveur MySQL peut ignorer l'insertion (faut voir dans le manuel)...

Eléphanteau du PHP | 21 Messages

08 juin 2007, 09:27

Pas bête ^^ Je partais du principe que faire une lecture à chaques fois (+ une écriture au cas ou ... A mon avis les mises à jour sont pas bien faramineuse ...) c'était plus rapide qu'une écriture à chaques fois.

Pour ce qui est de cette "fonctionnalitée" de MySQL > "Connait pas :oops: "

ViPHP
ViPHP | 5924 Messages

08 juin 2007, 12:56

Oui, mais tu ne te rends pas compte à quel point les serveurs SQL sont optimisés.
Quand on dit qu'un serveur SQL, c'est le meilleur moyen de stocker des données, ce ne sont pas des blagues, sur chaque requète, il y a des optimisations pour limiter toute opération superflue, avec par exemple les index, ou encore la mise en cache des requètes, ...

Eléphanteau du PHP | 21 Messages

11 juin 2007, 11:16

J'ai testé le tout premier truc ...
Avec les pays (la bdd gratuite de maxmind). J'ai mis mon ip (localisée Montpellier).

La bdd me dis que je suis en Angleterre ...


Je voullais faire de la géolocalisation de visiteurs pour mon site Internet (Pour savoir d'ou viennent les visiteurs). mais je crois que je vais m'en passer !







Edit ...

Aprés quelques recherches .. un outil pas mal :

http://api.hostip.info/get_html.php?ip=86.202.136.7

Vous fouttez l'ip et ça vous dis ou vous êtes. Suffit de parser la page mais y'a presque rien dedans dons pas dur à faire ! C'est parfait.

Ceci dit, par exemple, avec mon ip ça me met unknow nanani nanana ...

Eléphanteau du PHP | 13 Messages

11 juin 2007, 13:09

Pour les pays, la base de ip-to-country.com (gratuite) est plutot satisfaisante je trouve, d'après les quelques tests que j'ai fait.

Effectivement les bases gratuites de maxmind ne sont pas terribles. Celle pour les régions me sort Toulouse au lieu de Lyon... par contre la version payante à l'air pas mal, mais la seule version que j'ai pu obtenir est trop ancienne (2003), il y a beaucoup trop d'ip absentes.

Eléphanteau du PHP | 12 Messages

12 juin 2007, 09:35

Bon apres avoir réfléchi la mise à jour est infesable de façon automatique, car la base de données maxmind n'est pas dézippée directement dans la base de données, mais elle est fortement modifiée avant, le résultat final n'a donc rien en commun avec le csv de départ.
La mise à jour des fichiers automatique est donc infesable (du moins pour mon niveau) il me faudrait donc juste les plages d'adresse ip correspondant aux régions françaises (celles des différents chef lieux serait suffisante) puis je pourrais terminer ce programme ^^
Sur ce bonne journée à tous