Wenn Sie Webanwendungen entwickeln, können wir die Details des Kunden dabei helfen, eine stärkere funsterozielle Anpassung, Sicherheitsüberprüfung und Benutzerverhaltensanalyse durchzuführen. PHP ist eine flexible serverseitige Sprache, die die Benutzer-Agent des Kunden durch Funktionen analysieren kann. Wir können jedoch auch leistungsstärkere und erweiterbare Client-Informationenxtraktionsfunktionen über die benutzerdefinierte Funktion get_client_version implementieren.
Der Kernzweck der Funktion get_client_version besteht darin, den Typ des Clients (z. B. Browser, Betriebssystem, Gerätetyp) und Versionsinformationen aus dem Anforderungsheader zu extrahieren. Wir werden dies implementieren, indem wir $ _server ['http_user_agent'] analysieren und das Laden benutzerdefinierter Erweiterungsregeln unterstützen.
Im Folgenden finden Sie die Grundversion der Implementierung von Get_Client_version und unterstützt das Laden benutzerdefinierter Erweiterungen:
function get_client_version($user_agent = null, $custom_rules = []) {
if (is_null($user_agent)) {
$user_agent = $_SERVER['HTTP_USER_AGENT'] ?? '';
}
$clients = [
'Chrome' => '/Chrome\/([0-9\.]+)/',
'Firefox' => '/Firefox\/([0-9\.]+)/',
'Safari' => '/Version\/([0-9\.]+).*Safari/',
'Edge' => '/Edg\/([0-9\.]+)/',
'Opera' => '/OPR\/([0-9\.]+)/',
'Internet Explorer' => '/MSIE\s([0-9\.]+);/',
'Windows' => '/Windows NT ([0-9\.]+)/',
'macOS' => '/Mac OS X ([0-9_\.]+)/',
'iOS' => '/iPhone OS ([0-9_\.]+)/',
'Android' => '/Android ([0-9\.]+)/',
];
// Sonderregeln zusammenführen
if (!empty($custom_rules) && is_array($custom_rules)) {
$clients = array_merge($clients, $custom_rules);
}
$result = [];
foreach ($clients as $name => $pattern) {
if (preg_match($pattern, $user_agent, $matches)) {
$result[$name] = str_replace('_', '.', $matches[1]);
}
}
return $result;
}
$client_info = get_client_version();
// Clientinformationen ausgeben
echo '<pre>';
print_r($client_info);
echo '</pre>';
Sie können exklusive Kundenmerkmale erkennen, indem Sie benutzerdefinierte Regeln wie angepasste Anwendungsclients innerhalb des Unternehmens oder einige spezielle Browser -Shells verabschieden.
$custom_rules = [
'MyAppClient' => '/MyApp\/([0-9\.]+)/'
];
$client_info = get_client_version(null, $custom_rules);
// Clientinformationen ausgeben,Benutzerdefinierte Inhalte eingeben
echo '<pre>';
print_r($client_info);
echo '</pre>';
Benutzeranalyse : Statistik Die von den Benutzern verwendete Browser- und Versionsverteilung.
Funktionale Kompatibilitätsverarbeitung : Die Kompatibilitätsoptimierung wird für verschiedene Browser oder Systeme durchgeführt.
Sicherheitsrichtlinie : Identifizieren Sie nicht unterstützte Kunden und verbieten Sie den Zugriff.
API -Beschränkungen : Beschränken Sie bestimmte Kunden, bestimmte Schnittstellen basierend auf Kundeninformationen aufzurufen.
Es wird empfohlen, Get_Client_Version am öffentlichen Eingang des Projekts aufzurufen und die Ergebnisse auf $ _session oder Protokollierung zu leiten.
Für Umgebungen mit hoher Parallelität wird empfohlen, Redis- oder Datei -Cache zu kombinieren, um wiederholtes Parsen zu vermeiden.
Benutzeragenteninformationen finden Sie in der Dokumentation von MDN: https://developer.mozilla.org/
Weitere Browser -Kennungen: https://www.useragentstring.com/