Example #1
0
function cache_write($name, $var, $values)
{
    $cachefile = S_ROOT . './data/data_' . $name . '.php';
    $cachetext = "<?php\r\n" . "if(!defined('IN_SYS')) exit('Access Denied');\r\n" . '$' . $var . '=' . arrayeval($values) . "\r\n?>";
    if (!swritefile($cachefile, $cachetext)) {
        exit("File: {$cachefile} write error.");
    }
}
Example #2
0
function parse_template($tpl)
{
    global $_SGLOBAL;
    //包含模板
    $_SGLOBAL['sub_tpls'] = array($tpl);
    $tplfile = S_ROOT . './' . $tpl . '.htm';
    $objfile = S_ROOT . './runtime/tpl_cache/' . str_replace('/', '_', $tpl) . '.php';
    $template = sreadfile($tplfile);
    if (empty($template)) {
        exit("Template file : {$tplfile} Not found or have no access!");
    }
    //模板
    @($template = preg_replace("/\\<\\!\\-\\-\\{template\\s+([a-z0-9_\\/]+)\\}\\-\\-\\>/ie", "readtemplate('\\1')", $template));
    //处理子页面中的代码
    @($template = preg_replace("/\\<\\!\\-\\-\\{template\\s+([a-z0-9_\\/]+)\\}\\-\\-\\>/ie", "readtemplate('\\1')", $template));
    //PHP代码
    @($template = preg_replace("/\\<\\!\\-\\-\\{eval\\s+(.+?)\\s*\\}\\-\\-\\>/ies", "evaltags('\\1')", $template));
    //开始处理
    //变量
    $var_regexp = "((\\\$[a-zA-Z_-�][a-zA-Z0-9_-�]*)(\\[[a-zA-Z0-9_\\-\\.\"\\'\\[\\]\$-�]+\\])*)";
    @($template = preg_replace("/\\<\\!\\-\\-\\{(.+?)\\}\\-\\-\\>/s", "{\\1}", $template));
    @($template = preg_replace("/([\n\r]+)\t+/s", "\\1", $template));
    @($template = preg_replace("/(\\\$[a-zA-Z0-9_\\[\\]\\'\"\$-�]+)\\.([a-zA-Z_-�][a-zA-Z0-9_-�]*)/s", "\\1['\\2']", $template));
    @($template = preg_replace("/\\{(\\\$[a-zA-Z0-9_\\[\\]\\'\"\$\\.-�]+)\\}/s", "<?=\\1?>", $template));
    @($template = preg_replace("/{$var_regexp}/es", "addquote('<?=\\1?>')", $template));
    @($template = preg_replace("/\\<\\?\\=\\<\\?\\={$var_regexp}\\?\\>\\?\\>/es", "addquote('<?php echo \\1?>')", $template));
    //逻辑
    @($template = preg_replace("/\\{elseif\\s+(.+?)\\}/ies", "stripvtags('<?php } elseif(\\1) { ?>','')", $template));
    @($template = preg_replace("/\\{else\\}/is", "<?php } else { ?>", $template));
    //循环
    for ($i = 0; $i < 6; $i++) {
        @($template = preg_replace("/\\{foreach\\s+(\\S+)\\s+(\\S+)\\}(.+?)\\{\\/foreach\\}/ies", "stripvtags('<?php if(is_array(\\1)) { foreach(\\1 as \\2) { ?>','\\3<?php } } ?>')", $template));
        @($template = preg_replace("/\\{foreach\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\}(.+?)\\{\\/foreach\\}/ies", "stripvtags('<?php if(is_array(\\1)) { foreach(\\1 as \\2 => \\3) { ?>','\\4<?php } } ?>')", $template));
        @($template = preg_replace("/\\{if\\s+(.+?)\\}(.+?)\\{\\/if\\}/ies", "stripvtags('<?php if(\\1) { ?>','\\2<?php } ?>')", $template));
    }
    //常量
    @($template = preg_replace("/\\{([a-zA-Z_-�][a-zA-Z0-9_-�]*)\\}/s", "<?php echo \\1?>", $template));
    //替换
    if (!empty($_SGLOBAL['block_search'])) {
        @($template = str_replace($_SGLOBAL['block_search'], $_SGLOBAL['block_replace'], $template));
    }
    //换行
    @($template = preg_replace("/ \\?\\>[\n\r]*\\<\\? /s", " ", $template));
    //附加处理
    @($template = "<?php !defined('IN_CL') && exit('Forbidden');?><?php subtplcheck('" . implode('|', $_SGLOBAL['sub_tpls']) . "', '{$_SGLOBAL['timestamp']}', '{$tpl}');?>{$template}");
    //write
    if (!swritefile($objfile, $template, 'w')) {
        exit("File: {$objfile} can not be write!");
    }
}
function parse_template($tpl)
{
    global $_SGLOBAL, $_SC, $_SCONFIG;
    //°üº¬Ä£°å
    $_SGLOBAL['sub_tpls'] = array($tpl);
    $tplfile = S_ROOT . './' . $tpl . '.htm';
    $objfile = S_ROOT . './data/tpl_cache/' . str_replace('/', '_', $tpl) . '.php';
    //read
    if (!file_exists($tplfile)) {
        $tplfile = str_replace('/' . $_SCONFIG['template'] . '/', '/default/', $tplfile);
    }
    $template = sreadfile($tplfile);
    if (empty($template)) {
        exit("Template file : {$tplfile} Not found or have no access!");
    }
    //Ä£°å
    $template = preg_replace("/\\<\\!\\-\\-\\{template\\s+([a-z0-9_\\/]+)\\}\\-\\-\\>/ie", "readtemplate('\\1')", $template);
    //´¦Àí×ÓÒ³ÃæÖеĴúÂë
    $template = preg_replace("/\\<\\!\\-\\-\\{template\\s+([a-z0-9_\\/]+)\\}\\-\\-\\>/ie", "readtemplate('\\1')", $template);
    //½âÎöÄ£¿éµ÷ÓÃ
    $template = preg_replace("/\\<\\!\\-\\-\\{block\\/(.+?)\\}\\-\\-\\>/ie", "blocktags('\\1')", $template);
    //½âÎö¹ã¸æ
    $template = preg_replace("/\\<\\!\\-\\-\\{ad\\/(.+?)\\}\\-\\-\\>/ie", "adtags('\\1')", $template);
    //ʱ¼ä´¦Àí
    $template = preg_replace("/\\<\\!\\-\\-\\{date\\((.+?)\\)\\}\\-\\-\\>/ie", "datetags('\\1')", $template);
    //Í·Ïñ´¦Àí
    $template = preg_replace("/\\<\\!\\-\\-\\{avatar\\((.+?)\\)\\}\\-\\-\\>/ie", "avatartags('\\1')", $template);
    //PHP´úÂë
    $template = preg_replace("/\\<\\!\\-\\-\\{eval\\s+(.+?)\\s*\\}\\-\\-\\>/ies", "evaltags('\\1')", $template);
    //¿ªÊ¼´¦Àí
    //±äÁ¿
    $var_regexp = "((\\\$[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*)(\\[[a-zA-Z0-9_\\-\\.\"\\'\\[\\]\$-ÿ]+\\])*)";
    $template = preg_replace("/\\<\\!\\-\\-\\{(.+?)\\}\\-\\-\\>/s", "{\\1}", $template);
    $template = preg_replace("/([\n\r]+)\t+/s", "\\1", $template);
    $template = preg_replace("/(\\\$[a-zA-Z0-9_\\[\\]\\'\"\$-ÿ]+)\\.([a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*)/s", "\\1['\\2']", $template);
    $template = preg_replace("/\\{(\\\$[a-zA-Z0-9_\\[\\]\\'\"\$\\.-ÿ]+)\\}/s", "<?=\\1?>", $template);
    $template = preg_replace("/{$var_regexp}/es", "addquote('<?=\\1?>')", $template);
    $template = preg_replace("/\\<\\?\\=\\<\\?\\={$var_regexp}\\?\\>\\?\\>/es", "addquote('<?=\\1?>')", $template);
    //Âß¼­
    $template = preg_replace("/\\{elseif\\s+(.+?)\\}/ies", "stripvtags('<?php } elseif(\\1) { ?>','')", $template);
    $template = preg_replace("/\\{else\\}/is", "<?php } else { ?>", $template);
    //Ñ­»·
    for ($i = 0; $i < 5; $i++) {
        $template = preg_replace("/\\{loop\\s+(\\S+)\\s+(\\S+)\\}(.+?)\\{\\/loop\\}/ies", "stripvtags('<?php if(is_array(\\1)) { foreach(\\1 as \\2) { ?>','\\3<?php } } ?>')", $template);
        $template = preg_replace("/\\{loop\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\}(.+?)\\{\\/loop\\}/ies", "stripvtags('<?php if(is_array(\\1)) { foreach(\\1 as \\2 => \\3) { ?>','\\4<?php } } ?>')", $template);
        $template = preg_replace("/\\{if\\s+(.+?)\\}(.+?)\\{\\/if\\}/ies", "stripvtags('<?php if(\\1) { ?>','\\2<?php } ?>')", $template);
    }
    //³£Á¿
    $template = preg_replace("/\\{([a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*)\\}/s", "<?=\\1?>", $template);
    //Ìæ»»
    if (!empty($_SGLOBAL['block_search'])) {
        $template = str_replace($_SGLOBAL['block_search'], $_SGLOBAL['block_replace'], $template);
    }
    //»»ÐÐ
    $template = preg_replace("/ \\?\\>[\n\r]*\\<\\? /s", " ", $template);
    //¸½¼Ó´¦Àí
    $template = "<?php if(!defined('IN_UCHOME')) exit('Access Denied');?><?php subtplcheck('" . implode('|', $_SGLOBAL['sub_tpls']) . "', '{$_SGLOBAL['timestamp']}', '{$tpl}');?>{$template}<?php ob_out();?>";
    //write
    if (!swritefile($objfile, $template)) {
        exit("File: {$objfile} can not be write!");
    }
}
Example #4
0
    $cache_mode = true;
    $multi = '';
    $start = 0;
    $perpage = $count;
    if ($cache_file && file_exists($cache_file) && $_SGLOBAL['timestamp'] - @filemtime($cache_file) < $cache_time * 60) {
        $list_cache = sreadfile($cache_file);
        $list = unserialize($list_cache);
    }
}
if ($count && empty($list)) {
    $query = $_SGLOBAL['db']->query("{$sql} LIMIT {$start},{$perpage}");
    while ($value = $_SGLOBAL['db']->fetch_array($query)) {
        $list[$value['uid']] = $value;
    }
    if ($cache_mode && $cache_file) {
        swritefile($cache_file, serialize($list));
    }
}
foreach ($list as $key => $value) {
    $value['isfriend'] = $value['uid'] == $space['uid'] || $space['friends'] && in_array($value['uid'], $space['friends']) ? 1 : 0;
    realname_set($value['uid'], $value['username'], $value['name'], $value['namestatus']);
    $fuids[] = $value['uid'];
    $list[$key] = $value;
}
//在线状态
$ols = array();
if ($fuids) {
    $query = $_SGLOBAL['db']->query("SELECT * FROM " . tname('session') . " WHERE uid IN (" . simplode($fuids) . ")");
    while ($value = $_SGLOBAL['db']->fetch_array($query)) {
        if (!$value['magichidden']) {
            $ols[$value['uid']] = $value['lastactivity'];
Example #5
0
         }
         if ($valid) {
             $n = strlen($line);
             $o = ftell($fp) - $n;
             $lines[] = $cursor . '-' . $o . '-' . $n;
             //Record information: the line number - the starting position - length
             if ($offset >= $start && $offset < $start + $perpage) {
                 $list[] = $loginfo;
             }
             $offset++;
         }
         $cursor++;
     }
     fclose($fp);
     $count = count($lines);
     swritefile($tmpfile, implode(';', $lines));
 }
 if ($fromcache) {
     $data = explode(';', sreadfile($tmpfile));
     $count = count($data);
     $lines = array_slice($data, $start, $perpage);
     if ($lines) {
         $fp = fopen(S_ROOT . './data/log/' . $_GET['file'], 'r');
         foreach ($lines as $line) {
             list($l, $o, $n) = explode('-', $line);
             fseek($fp, $o);
             $line = $n ? fread($fp, $n) : '';
             $loginfo = parselog($line);
             $loginfo['line'] = $l;
             $uids[] = $loginfo['uid'];
             $list[] = $loginfo;
Example #6
0
        closedir($dh);
    }
} elseif ($_GET['op'] == 'edit') {
    $filename = checkfilename($_GET['filename']);
    $filefullname = $tpldir . $filename;
    $fp = fopen($filefullname, 'rb');
    $content = trim(shtmlspecialchars(fread($fp, filesize($filefullname))));
    fclose($fp);
} elseif ($_GET['op'] == 'repair') {
    $filename = checkfilename($_GET['filename']);
    $filefullname = $tpldir . $filename;
    //复制当前的文件
    $d_file = $filefullname . '.bak';
    if (file_exists($d_file)) {
        if (!@copy($d_file, $filefullname)) {
            swritefile($filefullname, sreadfile($d_file));
            @unlink($d_file);
        } else {
            @unlink($d_file);
        }
    } else {
        cpmessage('designated_template_files_can_not_be_restored');
    }
    cpmessage('do_success', $turl);
}
function checkfilename($filename)
{
    global $tpldir;
    $isedit = false;
    if (!empty($filename)) {
        $filename = str_replace(array('..', '/', '\\'), array('', '', ''), $filename);
Example #7
0
function deleteblocks($bids)
{
    global $_SGLOBAL;
    if (!checkperm('managead')) {
        return false;
    }
    $dels = $newids = array();
    $query = $_SGLOBAL['db']->query("SELECT * FROM " . tname('block') . " WHERE bid IN (" . simplode($bids) . ")");
    while ($value = $_SGLOBAL['db']->fetch_array($query)) {
        //删除模板与模板编译文件
        $tpl = S_ROOT . "./data/blocktpl/{$value['bid']}.htm";
        //原始
        swritefile($tpl, ' ');
        $newids[] = $value['bid'];
        $dels[] = $value;
    }
    if (empty($dels)) {
        return array();
    }
    //数据
    $_SGLOBAL['db']->query("DELETE FROM " . tname('block') . " WHERE bid IN (" . simplode($newids) . ")");
    return $dels;
}
Example #8
0
	extract($sqlarr);

	//显示数量
	$shownum = 9;
	
	$polllist = array();
	$query = $_SGLOBAL['db']->query("SELECT main.*
		FROM ".tname('poll')." main
		WHERE ".implode(' AND ', $wherearr)."
		ORDER BY main.{$order} $sc LIMIT 0,$shownum");
	while ($value = $_SGLOBAL['db']->fetch_array($query)) {
		realname_set($value['uid'], $value['username']);
		$polllist[] = $value;
	}
	if($_SGLOBAL['network']['poll']['cache']) {
		swritefile($cachefile, serialize($polllist));
	}
}
foreach($polllist as $key => $value) {
	realname_set($value['uid'], $value['username']);
	$polllist[$key] = $value;
}

//记录
$dolist = array();
$query = $_SGLOBAL['db']->query("SELECT *
	FROM ".tname('doing')."
	ORDER BY dateline DESC LIMIT 0,5");
while ($value = $_SGLOBAL['db']->fetch_array($query)) {
	realname_set($value['uid'], $value['username']);
	$value['title'] = getstr($value['message'], 0, 0, 0, 0, 0, -1);
Example #9
0
    if (empty($result)) {
        showmessage('blog_import_no_result', '', 1, array(shtmlspecialchars($org_result)));
    }
    //解析结果
    $results = xmltoarray($result);
    $ones = array_pop(array_slice($results, -1));
    if (!isset($ones['postid'])) {
        if (empty($ones)) {
            $return = "<textarea name=\"tmp[]\" style=\"width:98%;\" rows=\"4\">" . shtmlspecialchars($result) . "</textarea>";
        } else {
            $return = implode(', ', $ones);
        }
        showmessage('blog_import_no_data', '', 1, array($return));
    }
    //缓存结果
    swritefile($userfile, serialize($results));
} elseif (submitcheck('import2submit')) {
    include_once S_ROOT . './source/function_blog.php';
    if (empty($results) || empty($_POST['ids'])) {
        showmessage('choose_at_least_one_log', 'cp.php?ac=import');
    }
    $allcount = $incount = 0;
    krsort($results);
    //倒序
    foreach ($results as $key => $value) {
        $allcount = $allcount + 1;
        if (in_array($key, $_POST['ids'])) {
            $value = saddslashes($value);
            $dateline = intval(sstrtotime($value['dateCreated']));
            $subject = getstr($value['title'], 80, 1, 1, 1);
            $message = isset($value['description']) ? $value['description'] : $value['content'];
Example #10
0
}
if ($_SGLOBAL['supe_uid']) {
    //已登录,直接跳转个人首页
    showmessage('enter_the_space', 'space.php?do=home', 0);
}
if (empty($_SCONFIG['networkpublic'])) {
    $cachefile = S_ROOT . './data/cache_index.txt';
    $cachetime = @filemtime($cachefile);
    $spacelist = array();
    if ($_SGLOBAL['timestamp'] - $cachetime > 900) {
        //20位热门用户
        $query = $_SGLOBAL['db']->query("SELECT s.*, sf.resideprovince, sf.residecity\r\n\t\t\tFROM " . tname('space') . " s\r\n\t\t\tLEFT JOIN " . tname('spacefield') . " sf ON sf.uid=s.uid\r\n\t\t\tORDER BY s.friendnum DESC LIMIT 0,20");
        while ($value = $_SGLOBAL['db']->fetch_array($query)) {
            $spacelist[] = $value;
        }
        swritefile($cachefile, serialize($spacelist));
    } else {
        $spacelist = unserialize(sreadfile($cachefile));
    }
    //应用
    $myappcount = 0;
    $myapplist = array();
    if ($_SCONFIG['my_status']) {
        $myappcount = $_SGLOBAL['db']->result($_SGLOBAL['db']->query("SELECT COUNT(*) FROM " . tname('myapp') . " WHERE flag>='0'"), 0);
        if ($myappcount) {
            $query = $_SGLOBAL['db']->query("SELECT appid,appname FROM " . tname('myapp') . " WHERE flag>=0 ORDER BY flag DESC, displayorder LIMIT 0,7");
            while ($value = $_SGLOBAL['db']->fetch_array($query)) {
                $myapplist[] = $value;
            }
        }
    }
Example #11
0
    obclean();
    $s = array("/(\r|\n)/", "/\\<div\\s+class=\"pages\"\\>.+?\\<\\/div\\>/is", "/\\s+(href|src)=\"(.+?)\"/ie");
    $r = array("\n", '', "js_mkurl('\\1', '\\2')");
    $content = '';
    if ($obcontent) {
        $obcontent = preg_replace($s, $r, $obcontent);
        $lines = explode("\n", $obcontent);
        foreach ($lines as $line) {
            $line = addcslashes(trim($line), '/\'\\');
            $content .= "document.writeln('{$line}');\n";
        }
    } else {
        $content .= "document.writeln('NO DATA')";
    }
    if ($updatetime > 0) {
        swritefile($cachefile, $content);
    }
    echo $content;
} elseif ($adid) {
    //读取广告文件
    $file = './data/adtpl/' . $adid . '.htm';
    if (@($lines = file($file))) {
        foreach ($lines as $line) {
            $line = addcslashes(trim($line), '/\'\\');
            echo "document.writeln('{$line}');\n";
        }
    } else {
        echo "document.writeln('NO AD.')";
    }
}
function js_mkurl($tag, $url)
function sub_gettables() {
	global $_SGLOBAL, $_SC;
	
	$file = S_ROOT.'./data/data_table_'.X_RELEASE.'.txt';
	
	$tables = array();
	$content = trim(sreadfile($file));
	if($content) {
		$tables = unserialize($content);
	} else {
		$query = $_SGLOBAL['db']->query("SHOW TABLES LIKE '$_SC[tablepre]%'");
		while ($value = $_SGLOBAL['db']->fetch_array($query)) {
			$values = array_values($value);
			if(!strexists($values[0], 'cache')) {
				$subquery = $_SGLOBAL['db']->query("SHOW CREATE TABLE $values[0]");
				$result = $_SGLOBAL['db']->fetch_array($subquery);
				$tables[$values[0]] = sub_getcolumn($result['Create Table']);
			}
		}
		swritefile($file, serialize($tables));
	}
	
	return $tables;
	
}
Example #13
0
	
	$s = array("/(\r|\n)/", "/\<div\s+class=\"pages\"\>.+?\<\/div\>/is", "/\s+(href|src)=\"(.+?)\"/ie");
	$r = array("\n", '', 'js_mkurl("\\1", "\\2")');

	$content = '';
	if($obcontent) {
		$obcontent = preg_replace($s, $r, $obcontent);
		$lines = explode("\n", $obcontent);
		foreach ($lines as $line) {
			$line = addcslashes(trim($line), '/\'\\');
			$content .= "document.writeln('$line');\n";
		}
	} else {
		$content .= "document.writeln('NO DATA')";
	}
	if($updatetime > 0) swritefile($cachefile, $content);
	echo $content;

} elseif ($adid) {
	//读取广告文件
	$file = './data/adtpl/'.$adid.'.htm';
	if(@$lines = file($file)) {
		foreach ($lines as $line) {
			$line = addcslashes(trim($line), '/\'\\');
			echo "document.writeln('$line');\n";
		}
	} else {
		echo "document.writeln('NO AD.')";
	}
}
Example #14
0
            break;
    }
    if (empty($adcodes)) {
        cpmessage('please_check_whether_the_option_complete_required');
    } else {
        $adcodes['type'] = $_POST['adcode']['type'];
    }
    $setarr = array('title' => $_POST['title'], 'pagetype' => $_POST['pagetype'], 'adcode' => addslashes(serialize(sstripslashes($adcodes))), 'system' => $_POST['system'], 'available' => empty($_POST['system']) ? 1 : intval($_POST['available']));
    if (empty($adid)) {
        $adid = inserttable('ad', $setarr, 1);
    } else {
        updatetable('ad', $setarr, array('adid' => $adid));
    }
    //写入模板
    $tpl = S_ROOT . './data/adtpl/' . $adid . '.htm';
    swritefile($tpl, $html);
    //缓存更新
    include_once S_ROOT . './source/function_cache.php';
    ad_cache();
    cpmessage('do_success', 'admincp.php?ac=ad');
} elseif (submitcheck('delsubmit')) {
    include_once S_ROOT . './source/function_delete.php';
    if (!empty($_POST['adids']) && deleteads($_POST['adids'])) {
        //缓存更新
        include_once S_ROOT . './source/function_cache.php';
        ad_cache();
        cpmessage('do_success', 'admincp.php?ac=ad');
    } else {
        cpmessage('please_choose_to_remove_advertisements', 'admincp.php?ac=ad');
    }
}
function parse_template($tpl) {
	global $_SGLOBAL, $_SC, $_SCONFIG;

	//包含模板
	$_SGLOBAL['sub_tpls'] = array($tpl);

	$tplfile = S_ROOT.'./'.$tpl.'.htm';
	$objfile = S_ROOT.'./data/tpl_cache/'.str_replace('/','_',$tpl).'.php';
	
	//read
	if(!file_exists($tplfile)) {
		$tplfile = str_replace('/'.$_SCONFIG['template'].'/', '/default/', $tplfile);
	}
	$template = sreadfile($tplfile);
	if(empty($template)) {
		exit("Template file : $tplfile Not found or have no access!");
	}

	//模板
	$template = preg_replace("/\<\!\-\-\{template\s+([a-z0-9_\/]+)\}\-\-\>/ie", "readtemplate('\\1')", $template);
	//处理子页面中的代码
	$template = preg_replace("/\<\!\-\-\{template\s+([a-z0-9_\/]+)\}\-\-\>/ie", "readtemplate('\\1')", $template);
	//解析模块调用
	$template = preg_replace("/\<\!\-\-\{block\/(.+?)\}\-\-\>/ie", "blocktags('\\1')", $template);
	//解析广告
	$template = preg_replace("/\<\!\-\-\{ad\/(.+?)\}\-\-\>/ie", "adtags('\\1')", $template);
	//时间处理
	$template = preg_replace("/\<\!\-\-\{date\((.+?)\)\}\-\-\>/ie", "datetags('\\1')", $template);
	//头像处理
	$template = preg_replace("/\<\!\-\-\{avatar\((.+?)\)\}\-\-\>/ie", "avatartags('\\1')", $template);
	//PHP代码
	$template = preg_replace("/\<\!\-\-\{eval\s+(.+?)\s*\}\-\-\>/ies", "evaltags('\\1')", $template);

	//开始处理
	//变量
	$var_regexp = "((\\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)(\[[a-zA-Z0-9_\-\.\"\'\[\]\$\x7f-\xff]+\])*)";
	$template = preg_replace("/\<\!\-\-\{(.+?)\}\-\-\>/s", "{\\1}", $template);
	$template = preg_replace("/([\n\r]+)\t+/s", "\\1", $template);
	$template = preg_replace("/(\\\$[a-zA-Z0-9_\[\]\'\"\$\x7f-\xff]+)\.([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/s", "\\1['\\2']", $template);
	$template = preg_replace("/\{(\\\$[a-zA-Z0-9_\[\]\'\"\$\.\x7f-\xff]+)\}/s", "<?=\\1?>", $template);
	$template = preg_replace("/$var_regexp/es", "addquote('<?=\\1?>')", $template);
	$template = preg_replace("/\<\?\=\<\?\=$var_regexp\?\>\?\>/es", "addquote('<?=\\1?>')", $template);
	//逻辑
	$template = preg_replace("/\{elseif\s+(.+?)\}/ies", "stripvtags('<?php } elseif(\\1) { ?>','')", $template);
	$template = preg_replace("/\{else\}/is", "<?php } else { ?>", $template);
	//循环
	for($i = 0; $i < 6; $i++) {
		$template = preg_replace("/\{loop\s+(\S+)\s+(\S+)\}(.+?)\{\/loop\}/ies", "stripvtags('<?php if(is_array(\\1)) { foreach(\\1 as \\2) { ?>','\\3<?php } } ?>')", $template);
		$template = preg_replace("/\{loop\s+(\S+)\s+(\S+)\s+(\S+)\}(.+?)\{\/loop\}/ies", "stripvtags('<?php if(is_array(\\1)) { foreach(\\1 as \\2 => \\3) { ?>','\\4<?php } } ?>')", $template);
		$template = preg_replace("/\{if\s+(.+?)\}(.+?)\{\/if\}/ies", "stripvtags('<?php if(\\1) { ?>','\\2<?php } ?>')", $template);
	}
	//常量
	$template = preg_replace("/\{([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/s", "<?=\\1?>", $template);
	
	//替换
	if(!empty($_SGLOBAL['block_search'])) {
		$template = str_replace($_SGLOBAL['block_search'], $_SGLOBAL['block_replace'], $template);
	}
	
	//换行
	$template = preg_replace("/ \?\>[\n\r]*\<\? /s", " ", $template);
	
	//附加处理
	$template = "<?php if(!defined('IN_UCHOME')) exit('Access Denied');?><?php subtplcheck('".implode('|', $_SGLOBAL['sub_tpls'])."', '$_SGLOBAL[timestamp]', '$tpl');?>$template<?php ob_out();?>";
	
	//write
	if(!swritefile($objfile, $template)) {
		exit("File: $objfile can not be write!");
	}
}