4 if(!defined(
'IN_GAME')) {
12 $tplfile =
GAME_ROOT.
"./$tpldir/$file.htm";
13 $objfile =
GAME_ROOT.
"./gamedata/templates/{$templateid}_$file.tpl.php";
15 if(!$fp = fopen($tplfile,
'r')) {
16 gexit(
"Current template file './$tpldir/$file.htm' not found or have no access!");
17 }
elseif(!include_once
language(
'templates', $templateid, $tpldir)) {
18 gexit(
"<br>Current template pack do not have a necessary language file 'templates.lang.php' or have syntax error!");
21 $template = fread($fp, filesize($tplfile));
24 $var_regexp =
"((\\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)(\[[a-zA-Z0-9_\-\.\"\'\[\]\$\x7f-\xff]+\])*)";
25 $const_regexp =
"([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)";
27 $template = preg_replace(
"/([\n\r]+)\t+/s",
"\\1", $template);
28 $template = preg_replace(
"/<\!\-\-\{(.+?)\}\-\->/s",
"{\\1}", $template);
29 $template = preg_replace(
"/\{lang\s+(.+?)\}/ies",
"languagevar('\\1')", $template);
30 $template = str_replace(
"{LF}",
"<?=\"\\n\"?>", $template);
32 $template = preg_replace(
"/\{(\\\$[a-zA-Z0-9_\[\]\'\"\$\.\x7f-\xff]+)\}/s",
"<?=\\1?>", $template);
33 $template = preg_replace(
"/$var_regexp/es",
"addquote('<?=\\1?>')", $template);
34 $template = preg_replace(
"/<\?\=<\?\=$var_regexp\?>\?>/es",
"addquote('<?=\\1?>')", $template);
36 $template =
"<? if(!defined('IN_GAME')) exit('Access Denied'); ?>\n$template";
37 $template = preg_replace(
"/[\n\r\t]*\{template\s+([a-z0-9_]+)\}[\n\r\t]*/is",
"\n<? include template('\\1'); ?>\n", $template);
38 $template = preg_replace(
"/[\n\r\t]*\{template\s+(.+?)\}[\n\r\t]*/is",
"\n<? include template(\\1); ?>\n", $template);
39 $template = preg_replace(
"/[\n\r\t]*\{eval\s+(.+?)\}[\n\r\t]*/ies",
"stripvtags('\n<? \\1 ?>\n','')", $template);
40 $template = preg_replace(
"/[\n\r\t]*\{echo\s+(.+?)\}[\n\r\t]*/ies",
"stripvtags('\n<? echo \\1; ?>\n','')", $template);
41 $template = preg_replace(
"/[\n\r\t]*\{elseif\s+(.+?)\}[\n\r\t]*/ies",
"stripvtags('\n<? } elseif(\\1) { ?>\n','')", $template);
42 $template = preg_replace(
"/[\n\r\t]*\{else\}[\n\r\t]*/is",
"\n<? } else { ?>\n", $template);
44 for(
$i = 0;
$i < $nest;
$i++) {
45 $template = preg_replace(
"/[\n\r\t]*\{loop\s+(\S+)\s+(\S+)\}[\n\r]*(.+?)[\n\r]*\{\/loop\}[\n\r\t]*/ies",
"stripvtags('\n<? if(is_array(\\1)) { foreach(\\1 as \\2) { ?>','\n\\3\n<? } } ?>\n')", $template);
46 $template = preg_replace(
"/[\n\r\t]*\{loop\s+(\S+)\s+(\S+)\s+(\S+)\}[\n\r\t]*(.+?)[\n\r\t]*\{\/loop\}[\n\r\t]*/ies",
"stripvtags('\n<? if(is_array(\\1)) { foreach(\\1 as \\2 => \\3) { ?>','\n\\4\n<? } } ?>\n')", $template);
47 $template = preg_replace(
"/[\n\r\t]*\{if\s+(.+?)\}[\n\r]*(.+?)[\n\r]*\{\/if\}[\n\r\t]*/ies",
"stripvtags('\n<? if(\\1) { ?>','\n\\2\n<? } ?>\n')", $template);
50 $template = preg_replace(
"/\{$const_regexp\}/s",
"<?=\\1?>", $template);
51 $template = preg_replace(
"/ \?>[\n\r]*<\? /s",
" ", $template);
53 $template = preg_replace(
"/<\?/s",
"<?php", $template);
54 $template = preg_replace(
"/<\?php\=/s",
"<?php echo ", $template);
56 if(!$fp = fopen($objfile,
'w')) {
57 gexit(
"Directory './gamedata/templates/' not found or have no access!");
60 $template = preg_replace(
"/\"(http)?[\w\.\/:]+\?[^\"]+?&[^\"]+?\"/e",
"transamp('\\0')", $template);
62 fwrite($fp, $template);
67 $str = str_replace(
'&',
'&', $str);
68 $str = str_replace(
'&amp;',
'&', $str);
69 $str = str_replace(
'\"',
'"', $str);
74 return str_replace(
"\\\"",
"\"", preg_replace(
"/\[([a-zA-Z0-9_\-\.\x7f-\xff]+)\]/s",
"['\\1']", $var));
78 if(isset($GLOBALS[
'language'][$var])) {
79 return $GLOBALS[
'language'][$var];
86 $expr = str_replace(
"\\\"",
"\"", preg_replace(
"/<\?\=(\\\$.+?)\?>/s",
"\\1", $expr));
87 $statement = str_replace(
"\\\"",
"\"", $statement);
88 return $expr.$statement;
if(!defined('IN_GAME')) parse_template($file, $templateid, $tpldir)
【生存者数:<?php echo $alivenum?> 人】< input type="button"value="显示全部幸存者"onClick="$('alivemode').value='all';$('gbmode').value='none';postCmd('alive','alive.php');"></p > if($gamblingon &&$gamestate >=20) elseif($gamblingon &&$gamestate<=10)
language($file, $templateid=0, $tpldir= '')
gexit($message= '', $file= '', $line=0)
stripvtags($expr, $statement)