Détecter la langue du navigateur dans PHP rendu robuste
Vous avez tenté d'inclure automatiquement la page appropriée en fonction de la langue du navigateur dans votre script PHP. Cependant, le script échoue avec certains navigateurs, affichant systématiquement la page "index_en.php". Pour résoudre ce problème et améliorer la fiabilité de votre solution, envisagez de mettre en œuvre les améliorations suivantes :
lixlpixel_get_env_var($Var) doit être modifié pour gérer les environnements dans lesquels $GLOBALS[$Var] peut déjà être défini.
Au lieu de rechercher de manière itérative les langues acceptées à l'aide de strpos, analysez l'en-tête HTTP_ACCEPT_LANGUAGE dans un tableau et recherchez un match.
Envisagez de stocker vos langues disponibles dans une base de données ou une autre source de données structurée au lieu de vous fier au tableau codé en dur.
Implémentez un mécanisme de secours plus robuste qui inclut une liste de priorités de langues ou redirige vers une page de sélection de langue.
Une alternative simplifiée
Pour une approche plus simple, vous pouvez utiliser le script suivant :
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $acceptLang = ['fr', 'it', 'en']; $lang = in_array($lang, $acceptLang) ? $lang : 'en'; require_once "index_{$lang}.php";
Ce script conserve la fonctionnalité prévue de détection de la langue du navigateur à l'aide de l'en-tête HTTP_ACCEPT_LANGUAGE et du chargement de la page "index_xx.php" correspondante. Il utilise la fonction substr native de PHP pour extraire les deux premiers caractères du code de langue. Le tableau $acceptLang définit les langues acceptées. Si la langue détectée correspond à une langue du tableau, elle est utilisée ; sinon, « en » est considéré comme la valeur par défaut. L'instruction require_once inclut le fichier "index_xx.php" approprié en fonction de la langue détectée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!