2012-04-23 2 views

Répondre

1

Vous voulez servir un .js, généré par PHP, dont le contenu dépend du pays dont la demande est?

Si oui, vous pouvez utiliser l'extension GeoIP pour PHP: http://www.maxmind.com/app/php

1

En plus de la réponse de Jack (1), voici un code qui devrait fonctionner si vous utilisez le module PHP GeoIP:

addScript("http://domain.com/javascriptgenerator.php"); 

Puis, en javascriptgenerator.php, vous faites simplement:

<?php 
header("Content-type: application/javascript"); //Tell the browser we're sending JS 

require_once "Net/GeoIP.php"; //Path to GeoIP PHP module 

$geoip = Net_GeoIP::getInstance("/path/to/geoipdb.dat"); 

try { 
    switch ($geoip->lookupCountryCode($_SERVER['REMOTE_ADDR'])) { 
     case "CA": 
      //Generate JS for Canadian users 
     break; 
     case "FR": 
      //Generate JS for French users 
     break; 
     //Any number of case statements goes here 
     default: 
      //Show default JS code 
    } 
} catch (Exception $e) { 
    //Handle exception 
    //You probably want to show the default JS code if the geo-location is unsuccesful 
} 
?> 

Voir aussi http://pear.php.net/manual/en/package.networking.net-geoip.lookupcountrycode.php

+0

Y at-il un code facile? je veux utiliser ceci 'http://j.maxmind.com/app/geoip.js var pays = geoip_country_code();' –

+0

Euh ... pourquoi avez-vous ajouté une balise PHP à cette question si vous ne faites pas ' Je veux utiliser PHP du tout? Vous pouvez certainement utiliser JSONP pour extraire les données de 'geoip.js' du côté client, mais vous enverrez alors * tout * code JS pour chaque pays du monde, et choisir celui que vous voulez utiliser du côté du client seulement. En fonction de la différence entre ces fichiers JS, cela peut entraîner un gaspillage énorme de bande passante et rendre votre page beaucoup plus lente qu'elle ne devrait l'être. Donc, si ce code PHP n'est pas ce que vous cherchez, vous devez clarifier votre question :) – Daan

Questions connexes