Aktueller Standort: Startseite> Neueste Artikel> Benutzerdefinierte Erweiterung get_client_version unterstützt mehr Clientinformationen

Benutzerdefinierte Erweiterung get_client_version unterstützt mehr Clientinformationen

gitbox 2025-05-11

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.

1. grundlegende Ideen

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.

2. Funktionsimplementierung

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;
}

3. Verwenden Sie Beispiele

 $client_info = get_client_version();

// Clientinformationen ausgeben
echo '<pre>';
print_r($client_info);
echo '</pre>';

4. unterstützen benutzerdefinierte Erweiterungen

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>';

V. Typische Anwendungsszenarien

  1. Benutzeranalyse : Statistik Die von den Benutzern verwendete Browser- und Versionsverteilung.

  2. Funktionale Kompatibilitätsverarbeitung : Die Kompatibilitätsoptimierung wird für verschiedene Browser oder Systeme durchgeführt.

  3. Sicherheitsrichtlinie : Identifizieren Sie nicht unterstützte Kunden und verbieten Sie den Zugriff.

  4. API -Beschränkungen : Beschränken Sie bestimmte Kunden, bestimmte Schnittstellen basierend auf Kundeninformationen aufzurufen.

Vi. Bereitstellungsvorschläge

  • 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.

7. Referenzverbindung