Heim > Backend-Entwicklung > PHP-Problem > So generieren Sie einen eindeutigen Abfragecode in PHP

So generieren Sie einen eindeutigen Abfragecode in PHP

王林
Freigeben: 2023-02-24 12:02:02
Original
2277 Leute haben es durchsucht

So generieren Sie einen eindeutigen Abfragecode in PHP

Beispiel, wie PHP einen eindeutigen Abfragecode generiert

Es gibt viele Möglichkeiten, eine eindeutige ID in PHP zu generieren .

1. md5(time() . mt_rand(1,1000000));

Diese Methode hat eine gewisse Duplizierungswahrscheinlichkeit.

2. Die in PHP integrierte Funktion uniqid()

Die Funktion uniqid() generiert eine eindeutige ID basierend auf der aktuellen Zeit in Mikrosekunden. Im w3school-Referenzhandbuch gibt es einen Satz: „Da sie auf der Systemzeit basiert, ist die von dieser Funktion generierte ID nicht optimal. Um eine absolut eindeutige ID zu generieren, verwenden Sie bitte die Funktion md5().“

function uuid() {
    if (function_exists ( 'com_create_guid' )) {
        return com_create_guid ();
    } else {
        mt_srand ( ( double ) microtime () * 10000 ); //optional for php 4.2.0 and up.随便数播种,4.2.0以后不需要了。
        $charid = strtoupper ( md5 ( uniqid ( rand (), true ) ) ); //根据当前时间(微秒计)生成唯一id.
        $hyphen = chr ( 45 ); // "-"
        $uuid = '' . //chr(123)// "{"
substr ( $charid, 0, 8 ) . $hyphen . substr ( $charid, 8, 4 ) . $hyphen . substr ( $charid, 12, 4 ) . $hyphen . substr ( $charid, 16, 4 ) . $hyphen . substr ( $charid, 20, 12 );
        //.chr(125);// "}"
        return $uuid;
    }
}
Nach dem Login kopieren

com_create_guid() ist PHPs eigene Methode zum Generieren einer eindeutigen ID. Sie scheint nach PHP5 verschwunden zu sein.
3. Das offizielle uniqid()-Referenzhandbuch enthält von Benutzern bereitgestellte Methoden mit ähnlichen Ergebnissen: {E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}

public function create_guid($namespace = '') {     
    static $guid = '';
    $uid = uniqid("", true);
    $data = $namespace;
    $data .= $_SERVER['REQUEST_TIME'];
    $data .= $_SERVER['HTTP_USER_AGENT'];
    $data .= $_SERVER['LOCAL_ADDR'];
    $data .= $_SERVER['LOCAL_PORT'];
    $data .= $_SERVER['REMOTE_ADDR'];
    $data .= $_SERVER['REMOTE_PORT'];
    $hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data)));
    $guid = '{' .   
            substr($hash,  0,  8) . 
            '-' .
            substr($hash,  8,  4) .
            '-' .
            substr($hash, 12,  4) .
            '-' .
            substr($hash, 16,  4) .
            '-' .
            substr($hash, 20, 12) .
            '}';
    return $guid;
  }
Nach dem Login kopieren

Empfohlenes Tutorial: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo generieren Sie einen eindeutigen Abfragecode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage