Skip to content
Advertisement

php – check for valid guid

I have a mssql database in which my primary keys are GUIDs. I am working on a web interface for inserting some data. I need a GUID, generated by php. I am using com_create_guid() function. So, before trying to insert I want to ensure that my parameters are valid. I can not find a way to check if a string(com_create_guid() returns string) is a valid GUID.

Advertisement

Answer

Considering a GUID is defined as something like this : “A98C5A1E-A742-4808-96FA-6F409E799937” (from what the wikipedia page says)

I suppose using a regex like this one would do :

$guid = 'A98C5A1E-A742-4808-96FA-6F409E799937';
if (preg_match('/^{?[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}}?$/', $guid)) {
  var_dump('ok');
} else {
  var_dump('not ok');
}

It will match for

  • 8 characters (both letters and numbers)
  • 4 characters
  • 4 characters
  • 4 characters
  • 12 characters

Each set of characters being separated by a ‘-


Considering you’re using com_create_guid, the regex check for optionnals } and { arround the guid, which means this would display ‘ok’ too :

$guid = '{A98C5A1E-A742-4808-96FA-6F409E799937}';
if (preg_match('/^{?[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}}?$/', $guid)) {
  var_dump('ok');
} else {
  var_dump('not ok');
}
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement