| author | ymh <ymh.work@gmail.com> |
| Fri, 29 May 2015 14:57:37 +0200 | |
| changeset 444 | 19f0b7803aed |
| parent 442 | adb907bba956 |
| permissions | -rw-r--r-- |
<?php /** * Generates version 4 UUIDs * from https://github.com/ramsey/uuid/blob/2.8/src/Uuid.php * and http://stackoverflow.com/a/2040279 * * @return string */ function genUuid4() { if (function_exists('openssl_random_pseudo_bytes')) { $bytes = openssl_random_pseudo_bytes(16); } else { $bytes = ''; mt_srand(crc32(serialize([microtime(true), 'USER_IP', 'ETC']))); for ($i = 1; $i <= $length; $i++) { $bytes = chr(mt_rand(0, 255)) . $bytes; } } $bytes[6] = chr(ord($bytes[6]) & 0x0f | 0x40); // set version to 0100 $bytes[8] = chr(ord($bytes[8]) & 0x3f | 0x80); // set bits 6-7 to 10 return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($bytes), 4)); } /** * get page self url * from http://stackoverflow.com/a/2236887 */ function strleft($s1, $s2) { return substr($s1, 0, strpos($s1, $s2)); } function selfURL() { $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI']; } function selfBaseURL() { $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $protocol."://".$_SERVER['SERVER_NAME'].$port.dirname($_SERVER['REQUEST_URI']); }