<?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; } /** * 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; } }