PHP 5.4.40 Released

com_create_guid

(PHP 5)

com_create_guidGenerar un identificador único globalmente (GUID)

Descripción

string com_create_guid ( void )

Genera un identificador único globalmente (GUID: Globally Unique Identifier).

Un GUID es generado de la misma manera que el DCE UUID, excepto que la convención de Microsoft encierra un GUID entre llaves.

Valores devueltos

Devuelve el GUID como cadena.

Ver también

  • uuid_create() en la extensión uuid de PECL

add a note add a note

User Contributed Notes 3 notes

up
10
Alix Axel
4 years ago
The phunction PHP framework (http://sourceforge.net/projects/phunction/) uses the following function to generate valid version 4 UUIDs:

<?php

function GUID()
{
    if (
function_exists('com_create_guid') === true)
    {
        return
trim(com_create_guid(), '{}');
    }

    return
sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));
}

?>

The output generated by the sprintf() and mt_rand() calls is identical to com_create_guid() results.
up
-1
mark at briley dot com
19 days ago
I made a mistake on my previous note.  I used rtrim instead of just trim to take off the curly brackets.  Here is my note again - or please change the RTRIM to just TRIM in my previous note.  Thanks!  :-)

Kristof_Polleunis at yahoo dot com has an excellent function for obtaining a GUID but I believe it can be improved by checking for whether or not to remove the curly braces so the programmer who uses it doesn't have to do this.  Here is the improved function:

<?php
#
#   Taken from the PHP documentation website.
#
#   Kristof_Polleunis at yahoo dot com
#
#   A guid function that works in all php versions:
#   MEM 3/30/2015 : Modified the function to allow someone
#       to specify whether or not they want the curly
#       braces on the GUID.
#
function guid( $opt = true ){       //  Set to true/false as your default way to do this.

   
if( function_exists('com_create_guid') ){
        if(
$opt ){ return com_create_guid(); }
            else { return
trim( com_create_guid(), '{}' ); }
        }
        else {
           
mt_srand( (double)microtime() * 10000 );    // optional for php 4.2.0 and up.
           
$charid = strtoupper( md5(uniqid(rand(), true)) );
           
$hyphen = chr( 45 );    // "-"
           
$left_curly = $opt ? chr(123) : "";     //  "{"
           
$right_curly = $opt ? chr(125) : "";    //  "}"
           
$uuid = $left_curly
               
. substr( $charid, 0, 8 ) . $hyphen
               
. substr( $charid, 8, 4 ) . $hyphen
               
. substr( $charid, 12, 4 ) . $hyphen
               
. substr( $charid, 16, 4 ) . $hyphen
               
. substr( $charid, 20, 12 )
                .
$right_curly;
            return
$uuid;
            }
}

?>

As the comments say - set the incoming option ($opt) to either TRUE or FALSE depending upon whether you want the curly braces to always show up or not.  If you need to obtain a GUID in the other way - all you have to do is to send the opposite value to the function.
up
-7
Kristof_Polleunis at yahoo dot com
9 years ago
A guid function that works in all php versions:

<?php
function guid(){
    if (
function_exists('com_create_guid')){
        return
com_create_guid();
    }else{
       
mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
       
$charid = strtoupper(md5(uniqid(rand(), true)));
       
$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;
    }
}
echo
guid();
?>
To Top