Quand PHP connait votre langue
La curiosité n’est pas un vilain défaut mais une qualité fondamentale.
Les navigateurs vous donnent souvent des indications sur l'utilisateur et notamment la ou les langue.s définies dans celui-ci, via la variable $_SERVER['HTTP_ACCEPT_LANGUAGE'].
Après cest à vous de jouer,
// Parse the header to extract individual languages and their priorities $languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); $parsed_languages = []; foreach ($languages as $lang) { // Split the language and the priority (q-value) $lang_parts = explode(';', $lang); $language = $lang_parts[0]; $priority = isset($lang_parts[1]) ? floatval(substr($lang_parts[1], 2)) : 1.0; // Add to the parsed languages array $parsed_languages[] = ['language' => $language, 'priority' => $priority]; } // Sort the parsed languages by priority in descending order usort($parsed_languages, function($a, $b) { return $b['priority'] <=> $a['priority']; });
Maintenant vous avez un beau tableau bien propre
Pour moi ça donne ceci:
Array ( [0] => Array ( [language] => fr [priority] => 1 ) [1] => Array ( [language] => fr-FR [priority] => 0.8 ) [2] => Array ( [language] => en-US [priority] => 0.5 ) [3] => Array ( [language] => en [priority] => 0.3 ) )