blue-twilight/app/Helpers/MiscHelper.php

98 lines
2.4 KiB
PHP
Raw Permalink Normal View History

<?php
namespace App\Helpers;
class MiscHelper
{
public static function convertToBytes($val)
{
if(empty($val))return 0;
$val = trim($val);
preg_match('#([0-9]+)[\s]*([a-z]+)#i', $val, $matches);
$last = '';
if(isset($matches[2])){
$last = $matches[2];
}
if(isset($matches[1])){
$val = (int) $matches[1];
}
switch (strtolower($last))
{
case 'g':
case 'gb':
$val *= 1024;
case 'm':
case 'mb':
$val *= 1024;
case 'k':
case 'kb':
$val *= 1024;
}
return (int) $val;
}
public static function getEnvironmentFilePath()
{
return sprintf('%s/.env', dirname(dirname(__DIR__)));
}
public static function getEnvironmentSetting($settingName)
{
$envFile = MiscHelper::getEnvironmentFilePath();
$matches = null;
if (preg_match(sprintf('/^\s*%s\s*=\s*(.+)$/im', preg_quote($settingName)), file_get_contents($envFile), $matches))
{
return trim($matches[1]);
}
return null;
}
public static function gravatarUrl($emailAddress, $size = 48, $default = 'identicon')
{
$hash = md5(strtolower(trim($emailAddress)));
return sprintf('https://www.gravatar.com/avatar/%s?s=%d&d=%s', $hash, $size, $default);
}
/**
* Tests whether the provided URL belongs to the current application (i.e. both scheme and hostname match.)
* @param $url
* @return bool
*/
public static function isSafeUrl($url)
{
$parts = parse_url($url);
$validParts = parse_url(url('/'));
return ($parts['scheme'] == $validParts['scheme'] && $parts['host'] == $validParts['host']);
}
public static function randomString($length = 10)
{
$seed = 'abcdefghijklmnopqrstuvwxyz01234567890';
$string = '';
while (strlen($string) < $length)
{
$string .= substr($seed, rand(0, strlen($seed) - 1), 1);
}
return $string;
}
public static function setEnvironmentSetting($settingName, $value)
{
if (is_null(MiscHelper::getEnvironmentSetting($settingName)))
{
return file_put_contents(MiscHelper::getEnvironmentFilePath(), sprintf('%s=%s', $settingName, $value) . PHP_EOL, FILE_APPEND);
}
return false;
}
}