aboutsummaryrefslogtreecommitdiffstats
path: root/storage-backend/lib/functions.common.inc.php
blob: d00b555ca0f3c5918eee55f61718f30d83558a50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
/*
 * This file contains functions commonly used.
 */

/**
 * Copied from http://rogerstringer.com/2013/11/15/generate-uuids-php/
 */ 
function generate_uuid() {
  return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
    mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
    mt_rand( 0, 0xffff ),
    mt_rand( 0, 0x0fff ) | 0x4000,
    mt_rand( 0, 0x3fff ) | 0x8000,
    mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
  );
}

function getFromArray($key, $array) {
  if (array_key_exists($key, $array)
        && isset($array[$key])
        && !empty($array[$key])) {
        return $array[$key];
    } else {
        return NULL;
    }
}

function format_size($size, $precision = 2) {
  $sizes = ['bytes', 'Kb', 'Mb', 'Gb', 'Tb'];
  $i = 0;
  while (1023 < $size && $i < count($sizes) - 1) {
    $size /= 1023;
    ++$i;
  }

  return number_format($size, $precision).' '.$sizes[$i];
}

function startsWith($haystack, $needle) {
     $length = strlen($needle);
     return (substr($haystack, 0, $length) === $needle);
}

function endsWith($haystack, $needle) {
    $length = strlen($needle);

    return $length === 0 || (substr($haystack, -$length) === $needle);
}

function generatePath($parts, $basePath = __DIR__) {
    $path = $basePath;
    if (!is_array($parts)) {
        $parts = [$parts];
    }
    foreach ($parts as $part) {
        $path .= DIRECTORY_SEPARATOR.generatePathName($part);
    }
    return $path;
}

function generatePathName($name) {
    return urlencode($name);
}