'; } else{ echo ''; } } //curl get请求 function curl_get($url,$timeout = 10) { $curl = curl_init($url); #设置useragent curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36"); curl_setopt($curl, CURLOPT_FAILONERROR, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); #设置超时时间,最小为1s(可选) curl_setopt($curl , CURLOPT_TIMEOUT, $timeout); $html = curl_exec($curl); curl_close($curl); return $html; } //获取版本号,新写的 function new_get_version(){ if( file_exists('version.txt') ) { $version = @file_get_contents('version.txt'); $version = explode("-",$version)[0]; $version = str_replace("v","",$version); return $version; } else{ $version = 'null'; return $version; } } //随机数生成 function GetRandStr($len) { $chars = array( "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ); $charsLen = count($chars) - 1; shuffle($chars); $output = ""; for ($i=0; $i<$len; $i++) { $output .= $chars[mt_rand(0, $charsLen)]; } return $output; } //跳转到手机版页面 function jump_mobile() { $ua = $_SERVER['HTTP_USER_AGENT']; if( stristr($ua,'iphone') || stristr($ua,'android') ) { header("Location: /index.php?c=mobile#/"); exit; } } //获取所有主题 function get_all_themes() { //主题目录 $tpl_dir1 = dirname(__DIR__).'/templates/'; //备用主题目录 $tpl_dir2 = dirname(__DIR__).'/data/templates/'; //声明两个空数组用来存放模板目录列表 $tpl_one = []; $tpl_two = []; //遍历第一个目录 foreach ( scandir($tpl_dir1) as $value) { //完整的路径 $path = $tpl_dir1.$value; //如果是目录,则push到目录列表1 if( is_dir($path) ) { switch ($value) { case '.': case '..': case 'admin': case 'mobile': case 'universal': continue; break; default: array_push($tpl_one,$value); break; } } else{ continue; } } //如果第二个目录存在,则遍历 if( is_dir($tpl_dir2) ) { foreach ( scandir($tpl_dir2) as $value) { //完整的路径 $path = $tpl_dir2.$value; //如果是目录,则push到目录列表1 if( is_dir($path) ) { switch ($value) { case '.': case '..': case 'admin': continue; break; default: array_push($tpl_two,$value); break; } } else{ continue; } } } //合并目录 //现在$tpl_one是合并后的完整主题列表 $tpls = array_merge($tpl_one,$tpl_two); $tpls = array_unique($tpls); return $tpls; } // 获取HOST,需要去除端口号 function get_host(){ $host = $_SERVER['HTTP_HOST']; $parsed_host = parse_url($host); //var_dump($parsed_host); if (isset($parsed_host['port']) && $parsed_host['port'] != 80 && $parsed_host['port'] != 443) { $host = $parsed_host['host']; } return $host; } // 获取当前域名,比如https://nav.rss.ink function getCurrentUrlDomain() { $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $url_parts = parse_url($url); $domain = $url_parts['scheme'] . '://' . $url_parts['host']; if(!empty($url_parts['port'])) { $domain .= ':' . $url_parts['port']; } return $domain; } /** * name:检查分类是否全私有,如果是,则跳转到登录界面 */ function check_all_cat(){ global $db; // 统计所有分类的数量 $count = $db->count("on_categorys","*"); // 统计私有分类的数量 $count_private = $db->count("on_categorys","*",[ "property" => 1 ]); // 判断数量是否一致,一致则说明全部是私有 if( $count == $count_private ) { // 判断用户是否登录,未登录则跳转 if( !is_login() ) { header("Location:/index.php?c=login"); exit; } } } /** * name:检查是否存在明文密码参数,如果存在,则提示重新初始化 */ function unSafe() { $password = PASSWORD; if( isset($password) && $password !== 'PASSWORD' ) { exit("由于安全升级,请删除站点目录下的 data/config.php 文件后,重新完成初始化,此操作不会影响数据!"); } }