public static function getVersion($force = false) { iFS::mkdir(PATCH_DIR); $tFilePath = PATCH_DIR . 'version.json'; //临时文件夹 if (iFS::ex($tFilePath) && time() - iFS::mtime($tFilePath) < 3600 && !$force) { $FileData = iFS::read($tFilePath); } else { $url = PATCH_URL . '/version.' . iPHP_APP . '.' . iCMS_VER . '.patch.' . iCMS_RELEASE . '?t=' . time(); $FileData = iFS::remote($url); iFS::write($tFilePath, $FileData); } return json_decode($FileData); //版本列表 }
function pinyin($str, $split = "", $pn = true) { if (!isset($GLOBALS["iPHP.PY"])) { $GLOBALS["iPHP.PY"] = unserialize(gzuncompress(iFS::read(iPHP_PATH . '/pinyin.table'))); } preg_match_all('/[\\x01-\\x7f]|[\\xc2-\\xdf][\\x80-\\xbf]|[\\xe0-\\xef][\\x80-\\xbf]{2}|[\\xf0-\\xff][\\x80-\\xbf]{3}/', trim($str), $match); $s = $match[0]; $c = count($s); for ($i = 0; $i < $c; $i++) { $uni = strtoupper(dechex(utf2uni($s[$i]))); if (strlen($uni) > 2) { $pyArr = $GLOBALS["iPHP.PY"][$uni]; $py = is_array($pyArr) ? $pyArr[0] : $pyArr; $pn && ($py = str_replace(array('1', '2', '3', '4', '5'), '', $py)); $zh && $split && ($R[] = $split); $R[] = strtolower($py); $zh = true; $az09 = false; } else { if (preg_match("/[a-z0-9]/i", $s[$i])) { $zh && $i != 0 && !$az09 && $split && ($R[] = $split); $R[] = $s[$i]; $zh = true; $az09 = true; } else { $sp = true; if ($split) { if ($s[$i] == ' ') { $R[] = $sp ? '' : $split; $sp = false; } else { $R[] = $sp ? $split : ''; $sp = true; } } else { $R[] = ''; } $zh = false; $az09 = false; } } } return str_replace(array('Üe', 'Üan', 'Ün', 'lÜ', 'nÜ'), array('ue', 'uan', 'un', 'lv', 'nv'), implode('', (array) $R)); }
$content = preg_replace("/define\\(\\'iPHP_DB_USER\\',\\'.*?\\'\\)/is", "define('iPHP_DB_USER','" . iPHP_DB_USER . "')", $content); $content = preg_replace("/define\\(\\'iPHP_DB_PASSWORD\\',\\'.*?\\'\\)/is", "define('iPHP_DB_PASSWORD','" . iPHP_DB_PASSWORD . "')", $content); $content = preg_replace("/define\\(\\'iPHP_DB_NAME\\',\\'.*?\\'\\)/is", "define('iPHP_DB_NAME','" . iPHP_DB_NAME . "')", $content); $content = preg_replace("/define\\(\\'iPHP_DB_PREFIX\\',\\'.*?\\'\\)/is", "define('iPHP_DB_PREFIX','" . iPHP_DB_PREFIX . "')", $content); $content = preg_replace("/define\\(\\'iPHP_KEY\\',\\'.*?\\'\\)/is", "define('iPHP_KEY','" . random(32) . "')", $content); $parse_url = parse_url($router_url); $host = $parse_url['host']; $COOKIE_DOMAIN = '.' . iPHP::domain($host); preg_match("/^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\$/", $host) && ($COOKIE_DOMAIN = ''); $content = preg_replace("/define\\(\\'iPHP_COOKIE_DOMAIN\\',\\s*\\'.*?\\'\\)/is", "define('iPHP_COOKIE_DOMAIN','{$COOKIE_DOMAIN}')", $content); iFS::write($config, $content, false); //开始安装 数据库 $sql_file = dirname(strtr(__FILE__, '\\', '/')) . '/iCMS.V6.sql'; is_readable($sql_file) or iPHP::alert('数据库文件不存在或者读取失败', 'js:top.callback();'); //require_once ($config); $sql = iFS::read($sql_file); // $sql = str_replace('#iCMS@__',$db_prefix,$sql); // // run_query($sql); //设置超级管理员 $admin_password = md5($admin_password); iDB::query("\n\t\tUPDATE `#iCMS@__members`\n\t\tSET `username` = '{$admin_name}', `password` = '{$admin_password}'\n\t\tWHERE `uid` = '1';\n\t"); //配置程序 $result = iDB::all("SELECT * FROM `#iCMS@__config` WHERE `appid`='0'"); foreach ($result as $key => $c) { $value = $c['value']; strstr($c['value'], 'a:') && ($value = unserialize($c['value'])); $setting[$c['name']] = $value; } $setting['router']['URL'] = $router_url;