In PHP ist das Erkennung von Client -Browser -Versionen eine häufigste Anforderung. Insbesondere für Webanwendungen, die unterschiedliche Funktionen oder Stile für verschiedene Browserversionen erfordern, ist die Versionskontrolle sehr wichtig. Wir können dies erreichen, indem wir die Benutzer-Agent- Zeichenfolge des Clients erhalten. In diesem Artikel wird die Funktion "Custom Get_Client_Version" verwendet, um die Client -Browser -Version zu erkennen und basierend auf den Versionsinformationen einen geeigneten Steuerelement durchzuführen.
Jedes Mal, wenn die Client-Anfragen Anfragen anwenden, sendet der Browser einen HTTP-Header namens User-Agent , der den Browsertyp, die Version, das Betriebssystem und andere Informationen enthält. PHP bietet $ _server ['http_user_agent'], um diese Informationen zu erhalten.
Wir definieren zunächst eine Funktion, um den Browsertyp und die Browser -Version zu extrahieren.
function get_client_version() {
// Erhalten User-Agent Saite
$userAgent = $_SERVER['HTTP_USER_AGENT'];
// Browserversion
$browserVersion = '';
// Verschiedene Browser erkennen
if (preg_match('/MSIE (.*?);/', $userAgent, $matches)) {
$browserVersion = "Internet Explorer: " . $matches[1];
} elseif (preg_match('/Trident\/.*rv:(.*?)\)/', $userAgent, $matches)) {
$browserVersion = "Internet Explorer: " . $matches[1];
} elseif (preg_match('/Chrome\/(.*?) /', $userAgent, $matches)) {
$browserVersion = "Chrome: " . $matches[1];
} elseif (preg_match('/Firefox\/(.*?) /', $userAgent, $matches)) {
$browserVersion = "Firefox: " . $matches[1];
} elseif (preg_match('/Safari\/(.*?) /', $userAgent, $matches)) {
$browserVersion = "Safari: " . $matches[1];
} elseif (preg_match('/Edge\/(.*?) /', $userAgent, $matches)) {
$browserVersion = "Edge: " . $matches[1];
} else {
$browserVersion = "Unknown Browser";
}
return $browserVersion;
}
Im obigen Code verwenden wir regelmäßige Ausdrücke, um den Browsertyp und die Versionsinformationen in der Nutzer-Agent- Zeichenfolge zu extrahieren. Verschiedene Browser haben unterschiedliche Kennungen, beispielsweise steckt die Versionsnummer von Chrome normalerweise hinter Chrome/ , während Internet Explorer MSIE oder Trident verwendet.
Sobald wir die Browser -Versionsinformationen extrahiert haben, können wir sie entsprechend der Version unterschiedlich steuern. Angenommen, wir möchten mit einigen alten Versionen von Browsern eine gewisse Kompatibilität ausmachen oder einige erweiterte Funktionen für neue Versionen von Browsern aktivieren.
Beispielsweise können wir die Chrome -Version überprüfen und unterschiedliche Funktionen gemäß der Version bereitstellen:
function version_control() {
$browserVersion = get_client_version();
// ErhaltenBrowser名称和Version号
preg_match('/([a-zA-Z]+): (\d+\.\d+)/', $browserVersion, $matches);
$browserName = $matches[1] ?? 'Unknown';
$version = $matches[2] ?? '0';
// Rechts Chrome Versionskontrolle durchführen
if ($browserName == 'Chrome') {
if (floatval($version) < 90) {
echo "Dein Chrome Browserversion过低,请升级以Erhalten更好的体验。";
} else {
echo "Dein Chrome Browserversion支持最新功能!";
}
} elseif ($browserName == 'Firefox') {
// Rechts Firefox Führen Sie eine ähnliche Versionskontrolle durch
if (floatval($version) < 80) {
echo "Dein Firefox Browserversion过低,请升级以Erhalten更好的体验。";
} else {
echo "Dein Firefox Browserversion支持最新功能!";
}
} else {
echo "Erkannt, dass Sie es verwenden $browserName Browser,Version: $version。";
}
}
In dieser Version der Version_Control rufen wir zuerst get_client_version auf, um die Browser -Versionsinformationen zu erhalten. Als nächstes führen wir eine andere logische Verarbeitung basierend auf dem Namen und der Version des Browsers durch. Wenn die Version von Chrome beispielsweise niedriger als 90 ist, wird der Benutzer daran erinnert, den Browser zu verbessern.
Wenn wir den vorherigen Code kombinieren, haben wir ein vollständiges Beispiel, das auf der PHP -Seite verwendet werden kann:
<?php
function get_client_version() {
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$browserVersion = '';
if (preg_match('/MSIE (.*?);/', $userAgent, $matches)) {
$browserVersion = "Internet Explorer: " . $matches[1];
} elseif (preg_match('/Trident\/.*rv:(.*?)\)/', $userAgent, $matches)) {
$browserVersion = "Internet Explorer: " . $matches[1];
} elseif (preg_match('/Chrome\/(.*?) /', $userAgent, $matches)) {
$browserVersion = "Chrome: " . $matches[1];
} elseif (preg_match('/Firefox\/(.*?) /', $userAgent, $matches)) {
$browserVersion = "Firefox: " . $matches[1];
} elseif (preg_match('/Safari\/(.*?) /', $userAgent, $matches)) {
$browserVersion = "Safari: " . $matches[1];
} elseif (preg_match('/Edge\/(.*?) /', $userAgent, $matches)) {
$browserVersion = "Edge: " . $matches[1];
} else {
$browserVersion = "Unknown Browser";
}
return $browserVersion;
}
function version_control() {
$browserVersion = get_client_version();
preg_match('/([a-zA-Z]+): (\d+\.\d+)/', $browserVersion, $matches);
$browserName = $matches[1] ?? 'Unknown';
$version = $matches[2] ?? '0';
if ($browserName == 'Chrome') {
if (floatval($version) < 90) {
echo "Dein Chrome Browserversion过低,请升级以Erhalten更好的体验。";
} else {
echo "Dein Chrome Browserversion支持最新功能!";
}
} elseif ($browserName == 'Firefox') {
if (floatval($version) < 80) {
echo "Dein Firefox Browserversion过低,请升级以Erhalten更好的体验。";
} else {
echo "Dein Firefox Browserversion支持最新功能!";
}
} else {
echo "Erkannt, dass Sie es verwenden $browserName Browser,Version: $version。";
}
}
// 调用Version控制
version_control();
?>
Der obige Code kann Ihnen helfen, unterschiedliche Benutzererfahrungen oder Erinnerungen basierend auf verschiedenen Browserversionen bereitzustellen. Sie können nach Ihren Anforderungen weiter erweitern, z. B. das Hinzufügen weiterer Browser-Unterstützung oder das Aktivieren von spezifischen Front-End-Funktionen in bestimmten Versionen.