server/php/basic/resources/library/utilsFunctions.php
changeset 442 adb907bba956
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/php/basic/resources/library/utilsFunctions.php	Fri May 22 17:48:14 2015 +0200
@@ -0,0 +1,50 @@
+<?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']);
+}