zoukankan      html  css  js  c++  java
  • 生成GUID的算法

    类库
    <?php
    // guid.php
    class System {
      function currentTimeMillis() {
        list($usec, $sec) = explode(" ",microtime());
        return $sec.substr($usec, 2, 3);
      }
    }
    
    class NetAddress {
      var $name = 'localhost';
      var $ip   = '127.0.0.1';
      function getHost($coumputer_name, $ip) { // static
        $address = new NetAddress();
        $address->name = $coumputer_name;
        $address->ip   = $ip;
    
        return $address;
      }
    
      function toString() {
        return strtolower($this->name.'/'.$this->ip);
      }
    }
    
    class Random {
      function nextLong() {
        $tmp = rand(0,1)?'-':'';
        return $tmp.rand(1000, 9999).rand(1000, 9999).rand(1000, 9999).rand(100, 999).rand(100, 999);
      }
    }
    
    class Guid{
      var $valueBeforeMD5;
      var $valueAfterMD5;
      function Guid($computer_name, $ip){
        $this->getGuid($computer_name, $ip);
      }
    
      function getGuid($coumputer_name, $ip){
        $address = NetAddress::getHost($coumputer_name, $ip);
        $this->valueBeforeMD5 = $address->toString().':'.System::currentTimeMillis().':'.Random::nextLong();
        $this->valueAfterMD5 = md5($this->valueBeforeMD5);
      }
      
      function newGuid() {
       $Guid = new Guid();
       return $Guid;
      }
    
      function toString() {
       $raw = strtoupper($this->valueAfterMD5);
       return substr($raw,0,8).'-'.substr($raw,8,4).'-'.substr($raw,12,4).'-'.substr($raw,16,4).'-'.substr($raw,20);
      }
    }
    ?>
    
    调用
    <?php
    require_once('guid.php');
    $computer_name = $_SERVER["SERVER_NAME"];
    $ip            = $_SERVER["SERVER_ADDR"];
    $guid = new Guid($computer_name, $ip);
    print $guid->toString();
  • 相关阅读:
    Django的mysql配置
    解决mysql问题
    angular(3)服务 --注入---自定义模块--单页面应用
    GIT常用命令整理
    Angular(2)
    Angular(1)
    响应式布局 Bootstrap(01)
    Ajax (一)
    (转)经济学中的风险和不确定性的区别是什么?
    JQuery
  • 原文地址:https://www.cnblogs.com/chu888chu888/p/2616472.html
Copyright © 2011-2022 走看看