'a', '/[ÁÀÂÃÄ]/u' => 'A', '/[ÍÌÎÏ]/u' => 'I', '/[íìîï]/u' => 'i', '/[ěéèêë]/u' => 'e', '/[ĚÉÈÊË]/u' => 'E', '/[óòôõºö]/u' => 'o', '/[ÓÒÔÕÖ]/u' => 'O', '/[úùûü]/u' => 'u', '/[ÚÙÛÜ]/u' => 'U', '/Š/' => 'S', '/š/' => 's', '/Č/' => 'C', '/č/' => 'c', '/ř/' => 'r', '/Ř/' => 'R', '/Ý/' => 'Y', '/ý/' => 'y', '/ç/' => 'c', '/Ç/' => 'C', '/ñ/' => 'n', '/Ñ/' => 'N', '/–/' => '-', // UTF-8 hyphen to "normal" hyphen '/[’‘‹›‚]/u' => ' ', // Literally a single quote '/[“”«»„]/u' => ' ', // Double quote '/ /' => ' ', // nonbreaking space (equiv. to 0x160) ); return preg_replace(array_keys($utf8), array_values($utf8), $text); } static function stringInsert($str, $insertstr, $pos) { $str = substr($str, 0, $pos) . $insertstr . substr($str, $pos); return $str; } /** * [generateGraphJson description] * @param string $type [line/bar] * @param array $data [description] * @param array $options [description] * @return [type] [description] */ static function generateGraphJson(string $type = 'line', array $data = [], array $options = []) { $array = [ 'type' => $type, 'data' => [ 'datasets' => [ [ 'data' => $data, 'borderColor' => "#d4def7", 'backgroundColor' => "#d4def7" ] ] ], 'options' => [ 'scales' => [ 'xAxes' => [ [ 'type' => 'time', 'distribution' => 'linear', ] ], 'yAxes' => [ [ 'ticks' => [ 'min' => $options['min'], 'max' => $options['max'], 'steps' => $options['scale'] ] ] ] ], 'legend' => [ 'display' => false ], 'tooltips' => [ 'enabled' => true ], 'hover' => [ 'mode' => true ] ] ]; return json_encode($array, JSON_PRETTY_PRINT); } static function ago($datetime) { $interval = date_create('now')->diff($datetime); $suffix = ($interval->invert ? ' ago' : ''); if ($v = $interval->y >= 1) return self::pluralize($interval->m, 'month') . $suffix; if ($v = $interval->d >= 1) return self::pluralize($interval->d, 'day') . $suffix; if ($v = $interval->h >= 1) return self::pluralize($interval->h, 'hour') . $suffix; if ($v = $interval->i >= 1) return self::pluralize($interval->i, 'minute') . $suffix; return self::pluralize($interval->s, 'second') . $suffix; } static function pluralize($count, $text) { return $count . (($count == 1) ? (" $text") : (" ${text}s")); } static function checkOperator($value1, $operator, $value2) { switch ($operator) { case '<': // Less than return $value1 < $value2; case '<=': // Less than or equal to return $value1 <= $value2; case '>': // Greater than return $value1 > $value2; case '>=': // Greater than or equal to return $value1 >= $value2; case '==': // Equal return ($value1 == $value2); case '===': // Identical return $value1 === $value2; case '!==': // Not Identical return $value1 !== $value2; case '!=': // Not equal case '<>': // Not equal return $value1 != $value2; case '||': // Or case 'or': // Or return $value1 || $value2; case '&&': // And case 'and': // And return $value1 && $value2; case 'xor': // Or return $value1 xor $value2; default: return FALSE; } // end switch } static function CallAPI($method, $url, $data = false) { $curl = curl_init(); switch ($method) { case "POST": curl_setopt($curl, CURLOPT_POST, 1); if ($data) curl_setopt($curl, CURLOPT_POSTFIELDS, $data); break; case "PUT": curl_setopt($curl, CURLOPT_PUT, 1); break; default: if ($data) $url = sprintf("%s?%s", $url, http_build_query($data)); } // Optional Authentication: curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); //curl_setopt($curl, CURLOPT_USERPWD, "username:password"); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); curl_close($curl); return $result; } /** * Sort Array by keys * * @param array $data * @param [type] $key * @param string $operator ('asc'/'desc') * @return void */ static function sortArrayByKey($data = [], $key, $operator = "asc"){ if ($operator == "asc") { uasort($data, function($a, $b) use ($key){ if ($a[$key] == $b[$key]) return 0; return ($a[$key] < $b[$key]) ? -1 : 1; }); } else{ uasort($data, function($a, $b) use ($key){ if ($a[$key] == $b[$key]) return 0; return ($a[$key] > $b[$key]) ? -1 : 1; }); } return $data; } }