You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
4.4 KiB
PHP
166 lines
4.4 KiB
PHP
<?
|
|
ini_set('intl.default_locale', 'sv-SE');
|
|
ini_set('display_errors', 1);
|
|
|
|
function requireHttps() {
|
|
if(empty($_SERVER['HTTPS'])) {
|
|
header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
|
|
exit();
|
|
}
|
|
}
|
|
|
|
function requestOk($message) {
|
|
requestFail($message, false, 200);
|
|
}
|
|
|
|
function requestParameterFail($message, $die = false) {
|
|
requestFail($message, $die, 400);
|
|
}
|
|
|
|
function requestAuthFail($message, $die = false) {
|
|
requestFail($message, $die, 403);
|
|
}
|
|
|
|
function requestFail($message, $die = false, $status = 500) {
|
|
http_response_code($status);
|
|
echo($message);
|
|
if($die) {
|
|
die();
|
|
}
|
|
}
|
|
|
|
function getPageUrl($page = "") {
|
|
global $currentPage;
|
|
if($page == "") {
|
|
$page = $currentPage;
|
|
}
|
|
return "?page=$page";
|
|
}
|
|
|
|
function getMandatoryRequestValue($var, $message = null) {
|
|
$value = getOptionalRequestValue($var, null);
|
|
if($value == null) {
|
|
if($message != null) {
|
|
requestParameterFail($message, true);
|
|
} else {
|
|
requestParameterFail("Missing request parameter \"$var\"", true);
|
|
}
|
|
} else {
|
|
return $value;
|
|
}
|
|
}
|
|
|
|
function getOptionalRequestValue($var, $defaultValue) {
|
|
$sources = array($_GET, $_POST);
|
|
|
|
foreach($sources as $data) {
|
|
if(isset($data[$var]) && $data[$var] != null && $data[$var] != "") {
|
|
return $data[$var];
|
|
}
|
|
}
|
|
return $defaultValue;
|
|
}
|
|
|
|
function isPostSet($var) {
|
|
return (isset($_POST[$var]) && $_POST[$var] != "");
|
|
}
|
|
|
|
function time2str($ts) {
|
|
if(!ctype_digit($ts))
|
|
$ts = strtotime($ts);
|
|
|
|
$diff = time() - $ts;
|
|
if($diff == 0)
|
|
return 'now';
|
|
elseif($diff > 0)
|
|
{
|
|
$day_diff = floor($diff / 86400);
|
|
if($day_diff == 0)
|
|
{
|
|
if($diff < 60) return 'just now';
|
|
if($diff < 120) return '1 minute ago';
|
|
if($diff < 3600) return floor($diff / 60) . ' minutes ago';
|
|
if($diff < 7200) return '1 hour ago';
|
|
if($diff < 86400) return floor($diff / 3600) . ' hours ago';
|
|
}
|
|
if($day_diff == 1) return 'Yesterday';
|
|
if($day_diff < 7) return $day_diff . ' days ago';
|
|
if($day_diff < 31) return ceil($day_diff / 7) . ' weeks ago';
|
|
if($day_diff < 60) return 'last month';
|
|
return date('F Y', $ts);
|
|
}
|
|
else
|
|
{
|
|
$diff = abs($diff);
|
|
$day_diff = floor($diff / 86400);
|
|
if($day_diff == 0)
|
|
{
|
|
if($diff < 120) return 'in a minute';
|
|
if($diff < 3600) return 'in ' . floor($diff / 60) . ' minutes';
|
|
if($diff < 7200) return 'in an hour';
|
|
if($diff < 86400) return 'in ' . floor($diff / 3600) . ' hours';
|
|
}
|
|
if($day_diff == 1) return 'Tomorrow';
|
|
if($day_diff < 4) return date('l', $ts);
|
|
if($day_diff < 7 + (7 - date('w'))) return 'next week';
|
|
if(ceil($day_diff / 7) < 4) return 'in ' . ceil($day_diff / 7) . ' weeks';
|
|
if(date('n', $ts) == date('n') + 1) return 'next month';
|
|
return date('F Y', $ts);
|
|
}
|
|
}
|
|
|
|
function bytes2str($bytes) {
|
|
$si_prefix = array('B', 'kB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB');
|
|
$base = 1024;
|
|
$class = min((int)log($bytes, $base) , count($si_prefix) - 1);
|
|
return sprintf("%1.2f" , $bytes / pow($base, $class))." ".$si_prefix[$class];
|
|
}
|
|
|
|
function seconds2str($seconds) {
|
|
$multiplier = array(1, 60, 60, 24, 7, 4.3482, 12);
|
|
//$unit = array("s", "m", "h", "d", "w", "m", "y");
|
|
$unit = array("sekunder", "minuter", "timmar", "dagar", "veckor", "månader", "år");
|
|
|
|
$time = $seconds;
|
|
$i = 0;
|
|
for(; $i < count($multiplier); $i++) {
|
|
$time = $time / $multiplier[$i];
|
|
if(($i == count($multiplier) - 1) || abs($time) < $multiplier[$i+1]) {
|
|
break;
|
|
}
|
|
}
|
|
if($i == 0) {
|
|
return intval($time)." ".$unit[$i];
|
|
} else {
|
|
return intval($time)." ".$unit[$i]." & ".intval(($time - intval($time))*$multiplier[$i])." ".$unit[$i-1];
|
|
}
|
|
}
|
|
|
|
function getColor($seed) {
|
|
mt_srand($seed*5);
|
|
return sprintf('#%06X', mt_rand(0, 0xFFFFFF));
|
|
}
|
|
|
|
function toTwoDigits($i) {
|
|
return intval($i / 10).($i % 10);
|
|
}
|
|
|
|
function getMonthStr($i) {
|
|
$months = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
|
|
return $months[$i - 1];
|
|
}
|
|
|
|
function formatDate($year, $month, $day) {
|
|
return $year."-".toTwoDigits($month)."-".toTwoDigits($day);
|
|
}
|
|
|
|
function createPasswordSalt() {
|
|
return rand(1000, 9999);
|
|
}
|
|
|
|
function createPasswordHash($password, $salt) {
|
|
return md5($password.$salt);
|
|
}
|
|
|
|
?>
|