What are best practices for loading language files in PHP based on user preferences?

When loading language files in PHP based on user preferences, it's important to prioritize the user's preferred language while also providing fallback options. One way to achieve this is by first checking the user's preferred language, then falling back to a default language if the preferred one is not available. This can be done by using PHP's `$_SERVER['HTTP_ACCEPT_LANGUAGE']` variable to determine the user's language preferences.

// Get user's preferred language from HTTP_ACCEPT_LANGUAGE header
$preferredLanguages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);

// Loop through preferred languages and load corresponding language file
foreach ($preferredLanguages as $language) {
    $languageFile = "languages/{$language}.php";
    
    if (file_exists($languageFile)) {
        include $languageFile;
        break;
    }
}

// Fallback to default language if user's preferred language is not available
if (!isset($language)) {
    include "languages/default.php";
}