<?php
use startmvc\core\Config;
function lang($key, $default = '') {
static $langCache = [];
if (empty($key)) {
return $default;
}
if (isset($langCache[$key])) {
return $langCache[$key];
}
$conf = include ROOT_PATH . '/config/common.php';
$locale = $conf['locale'] ?: 'zh_cn';
$langPath = APP_PATH . MODULE . '/language/' . $locale . '.php';
if (is_file($langPath)) {
$lang = include $langPath;
if (!empty($lang[$key])) {
$langCache[$key] = $lang[$key];
return $lang[$key];
}
} else {
throw new \Exception('语言包文件不存在');
}
return $default ?: $key;
}
function dump($var, $label = null, $echo = true)
{
ob_start();
var_dump($var);
$output = ob_get_clean();
$output = preg_replace("/\]\=\>\n(\s+)/m", "] => ", $output);
$cli = preg_match("/cli/i", PHP_SAPI) ? true : false;
if ($cli === true) {
$output = PHP_EOL . $label . PHP_EOL . $output . PHP_EOL;
} else {
$output = '<pre>' . PHP_EOL . $label . PHP_EOL . $output . '</pre>' . PHP_EOL;
}
if ($echo) {
echo $output;
}
return $output;
}
function config($name = '', $value = '',$file='common') {
$config=Config::load($file);
if ('' === $value) {
return $config[$name];
}
return $config[$name]=$value;
}
function url($url){
$url = $url . config('url_suffix');
if (config('urlrewrite')) {
$url = '/' . $url;
} else {
$url = '/index.php/' . $url;
}
return str_replace('%2F', '/', urlencode($url));
}
function get_ip() {
$ip = null;
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
foreach ($ips as $tmp) {
$ip = trim($tmp);
if ($ip !== 'unknown') {
break;
}
}
}
if (!$ip) {
$ip = $_SERVER['REMOTE_ADDR'] ?? $_SERVER['HTTP_CLIENT_IP'] ?? $_SERVER['HTTP_CDN_SRC_IP'] ?? '0.0.0.0';
}
if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6)) {
$ip = '0.0.0.0';
}
return $ip;
}