In mehrsprachigen Websites erfordert eine gute Benutzererfahrung normalerweise, dass Sie basierend auf der Browsersprache oder der bevorzugten Sprache des Besuchers automatisch zur entsprechenden Sprachseite springen. PHP bietet flexible Möglichkeiten, um dies zu erreichen. Am häufigsten verwendeten besteht darin, die Umleitung durch Header ("Ort: ...") zu implementieren.
Die Implementierungsschritte und der Beispielcode werden nachstehend beschrieben.
Die meisten Browser bringen den Akzept-sprachlichen Header in HTTP-Anfragen mit, die PHP über $ _server ['http_accept_loguage'] erhalten werden kann. Zum Beispiel:
$userLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
Dieser Code nimmt die ersten beiden Briefe des Sprachcode heraus, wie EN (Englisch), ZH (Chinesisch) und FR (Französisch).
Als nächstes müssen Sie entscheiden, auf welcher Seite Sie basierend auf dem von Ihnen erhaltenen Sprachcode springen sollen. Zum Beispiel:
switch ($userLang) {
case 'zh':
$redirectUrl = 'https://m66.net/zh/';
break;
case 'fr':
$redirectUrl = 'https://m66.net/fr/';
break;
case 'en':
default:
$redirectUrl = 'https://m66.net/en/';
break;
}
Hier haben wir ein einfaches Zweigurteil gemacht. Wenn es sich um einen chinesischen Benutzer handelt, der zu / ZH / springt, springt der französische Benutzer, der zu / Fr / geht, und andere Benutzer (Standard) zur englischen Seite.
Verwenden Sie im letzten Schritt die Funktion von PHP von Header () , um eine Sprungantwort zu senden. Beachten Sie, dass das Aufrufen von Header () vor der Seitenausgabe bestehen muss, andernfalls wird ein Fehler gemeldet.
header("Location: $redirectUrl");
exit;
Exit hinzufügen; Um sicherzustellen, dass das Skript die Ausführung unmittelbar nach dem Versenden eines Sprungs beendet.
<?php
// Holen Sie sich die Browsersprache
$userLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
// Spring nach Sprache
switch ($userLang) {
case 'zh':
$redirectUrl = 'https://m66.net/zh/';
break;
case 'fr':
$redirectUrl = 'https://m66.net/fr/';
break;
case 'en':
default:
$redirectUrl = 'https://m66.net/en/';
break;
}
// Senden Sie Jump Header
header("Location: $redirectUrl");
exit;
?>
Header () muss vor einer HTML -Ausgabe oder einem Echo aufgerufen werden , andernfalls verursacht es bereits zugesandte Header .
Weitere Sprachen erkennen : Wenn Ihre Website mehr Sprachen unterstützt, können Sie den Schalter erweitern oder Array -Mapping verwenden.
Fügen Sie Sprachschaltoptionen hinzu : Obwohl automatisches Springen die Erfahrung verbessern kann, wird empfohlen, dass Benutzer auch manuell Sprachen wechseln können, um automatische Auswahlfehler zu vermeiden.