In der Webentwicklung ist das Verständnis des Clients (Browser, Betriebssystem usw.) für das Debugieren und Anpassung an verschiedene Umgebungen sehr wichtig. PHP wird mit der Funktion get_browser () ausgestattet, mit der der Browser des Benutzers und deren Eigenschaften identifiziert werden kann. Die Genauigkeit wird jedoch durch die Aktualisierungsfrequenz von Browserscap.ini -Datei beeinflusst und kann manchmal nicht alle Anforderungen entsprechen.
Um die Client -Versionsinformationen genauer zu identifizieren, können wir sie in Verbindung mit get_browser () verwenden, indem wir eine Funktion get_client_version anpassen. Das Folgende erläutert detailliert, wie es implementiert werden soll.
Stellen Sie zunächst sicher, dass der BrowserCap in Ihrer PHP -Konfiguration aktiviert ist und auf eine neueste BrowSercap.ini -Datei verweist.
Konfigurieren Sie in php.ini :
browscap = "https://gitbox.net/path/to/browscap.ini"
Natürlich wird empfohlen, Browser.ini während der tatsächlichen Bereitstellung auf den lokalen Server herunterzuladen und als lokaler Pfad zu konfigurieren, um einen Remote -Zugriff auf jede Anforderung zu vermeiden.
Hier ist ein einfaches Beispiel dafür, wie es in PHP implementiert werden kann:
<?php
/**
* Holen Sie sich Client -Versionsinformationen
*
* @return array
*/
function get_client_version() {
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$browserInfo = get_browser(null, true);
$clientData = [
'browser' => $browserInfo['browser'] ?? 'Unknown',
'version' => $browserInfo['version'] ?? 'Unknown',
'platform' => $browserInfo['platform'] ?? 'Unknown',
'user_agent' => $userAgent,
];
// Zusätzliche Tests für bestimmte besondere Umstände,Zum Beispiel mobil
if (stripos($userAgent, 'iPhone') !== false) {
$clientData['device'] = 'iPhone';
} elseif (stripos($userAgent, 'Android') !== false) {
$clientData['device'] = 'Android';
} else {
$clientData['device'] = 'Desktop';
}
return $clientData;
}
// Aufrufen Beispiel
$clientInfo = get_client_version();
echo '<pre>';
print_r($clientInfo);
echo '</pre>';
?>
Manchmal sind die von get_browser () erhaltenen Informationen relativ rau. Wir können regelmäßige Ausdrücke kombinieren, um eine sekundäre Analyse von Benutzer-Agent durchzuführen, z.
<?php
/**
* Genauere Identifizierung von Client -Versionen,Spezifisch einschließenAppEingebauter Browser
*
* @return array
*/
function get_client_version() {
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$browserInfo = get_browser(null, true);
$clientData = [
'browser' => $browserInfo['browser'] ?? 'Unknown',
'version' => $browserInfo['version'] ?? 'Unknown',
'platform' => $browserInfo['platform'] ?? 'Unknown',
'user_agent' => $userAgent,
'device' => 'Desktop',
'app' => 'None'
];
if (stripos($userAgent, 'iPhone') !== false) {
$clientData['device'] = 'iPhone';
} elseif (stripos($userAgent, 'Android') !== false) {
$clientData['device'] = 'Android';
}
// Besondere ErkennungAppEingebauter Browser
if (stripos($userAgent, 'MicroMessenger') !== false) {
$clientData['app'] = 'WeChat';
} elseif (stripos($userAgent, 'Douyin') !== false) {
$clientData['app'] = 'Douyin';
} elseif (stripos($userAgent, 'miniProgram') !== false) {
$clientData['app'] = 'MiniProgram';
}
return $clientData;
}
// Aufrufen Beispiel
$clientInfo = get_client_version();
echo '<pre>';
print_r($clientInfo);
echo '</pre>';
?>
get_browser () hängt von der Datei browserscap.ini ab. Denken Sie daran, es regelmäßig zu aktualisieren, ansonsten kann das Erkennungsergebnis veraltet sein.
Benutzer können Benutzer-Agent gefälscht, sodass diese Erkennungsmethoden nur für Optimierungserlebnisse und nicht für die Sicherheitsüberprüfung geeignet sind.
Wenn eine komplexere Identifizierung erforderlich ist (z. B. Unterscheidung zwischen Innen- und Außenbrowsern usw.), kann sie in Kombination mit Bibliotheken von Drittanbietern wie dem Browser/Parser weiter verbessert werden.
Durch die Kombination von PHP -Funktion von Get_Browser () mit benutzerdefinierter Get_Client_version Logic können wir die Genauigkeit und Flexibilität der Client -Erkennung effektiv verbessern. Insbesondere in der mobilen Internetumgebung kann es die Umgebung für Geräte und App genau identifizieren und die Benutzererfahrung und Funktionsanpassung erheblich optimieren.