PHP蚂蚁分类信息网站系统4.0i单城市(去除域名限制).rar
2024-12-26 09:40
<?php
class Smarty_Compiler extends Smarty {
var $_folded_blocks = array();
var $_current_file = null;
var $_current_line_no = 1;
var $_capture_stack = array();
var $_plugin_info = array();
var $_init_smarty_vars = false;
var $_permitted_tokens = array('true','false','yes','no','on','off','null');
var $_db_qstr_regexp = null;
var $_si_qstr_regexp = null;
var $_qstr_regexp = null;
var $_func_regexp = null;
var $_reg_obj_regexp = null;
var $_var_bracket_regexp = null;
var $_num_const_regexp = null;
var $_dvar_guts_regexp = null;
var $_dvar_regexp = null;
var $_cvar_regexp = null;
var $_svar_regexp = null;
var $_avar_regexp = null;
var $_mod_regexp = null;
var $_var_regexp = null;
var $_parenth_param_regexp = null;
var $_func_call_regexp = null;
var $_obj_ext_regexp = null;
var $_obj_start_regexp = null;
var $_obj_params_regexp = null;
var $_obj_call_regexp = null;
var $_cacheable_state = 0;
var $_cache_attrs_count = 0;
var $_nocache_count = 0;
var $_cache_serial = null;
var $_cache_include = null;
var $_strip_depth = 0;
var $_additional_newline = "
";
function Smarty_Compiler()
{
$this->_db_qstr_regexp = '"[^"\\]*(?:\\.[^"\\]*)*"';
$this->_si_qstr_regexp = ''[^'\\]*(?:\\.[^'\\]*)*'';
$this->_qstr_regexp = '(?:' . $this->_db_qstr_regexp . '|' . $this->_si_qstr_regexp . ')';
$this->_var_bracket_regexp = '[$?[w.]+]';
$this->_num_const_regexp = '(?:-?d+(?:.d+)?)';
$this->_dvar_math_regexp = '(?:[+*/%]|(?:-(?!>)))';
$this->_dvar_math_var_regexp = '[$w.+-*/%d>[]]';
$this->_dvar_guts_regexp = 'w+(?:' . $this->_var_bracket_regexp
. ')*(?:.$?w+(?:' . $this->_var_bracket_regexp . ')*)*(?:' . $this->_dvar_math_regexp . '(?:' . $this->_num_const_regexp . '|' . $this->_dvar_math_var_regexp . ')*)?';
$this->_dvar_regexp = '$' . $this->_dvar_guts_regexp;
$this->_cvar_regexp = '#w+#';
$this->_svar_regexp = '%w+.w+%';
$this->_avar_regexp = '(?:' . $this->_dvar_regexp . '|'
. $this->_cvar_regexp . '|' . $this->_svar_regexp . ')';
$this->_var_regexp = '(?:' . $this->_avar_regexp . '|' . $this->_qstr_regexp . ')';
$this->_obj_ext_regexp = '->(?:$?' . $this->_dvar_guts_regexp . ')';
$this->_obj_restricted_param_regexp = '(?:'
. '(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . ')(?:' . $this->_obj_ext_regexp . '(?:((?:(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . ')'
. '(?:s*,s*(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . '))*)?))?)*)';
$this->_obj_single_param_regexp = '(?:w+|' . $this->_obj_restricted_param_regexp . '(?:s*,s*(?:(?:w+|'
. $this->_var_regexp . $this->_obj_restricted_param_regexp . ')))*)';
$this->_obj_params_regexp = '((?:' . $this->_obj_single_param_regexp
. '(?:s*,s*' . $this->_obj_single_param_regexp . ')*)?)';
$this->_obj_start_regexp = '(?:' . $this->_dvar_regexp . '(?:' . $this->_obj_ext_regexp . ')+)';
$this->_obj_call_regexp = '(?:' . $this->_obj_start_regexp . '(?:' . $this->_obj_params_regexp . ')?(?:' . $this->_dvar_math_regexp . '(?:' . $this->_num_const_regexp . '|' . $this->_dvar_math_var_regexp . ')*)?)';
$this->_mod_regexp = '(?:|@?w+(?::(?:w+|' . $this->_num_const_regexp . '|'
. $this->_obj_call_regexp . '|' . $this->_avar_regexp . '|' . $this->_qstr_regexp .'))*)';
$this->_func_regexp = '[a-zA-Z_]w*';
$this->_reg_obj_regexp = '[a-zA-Z_]w*->[a-zA-Z_]w*';
$this->_param_regexp = '(?:s*(?:' . $this->_obj_call_regexp . '|'
. $this->_var_regexp . '|' . $this->_num_const_regexp . '|w+)(?>' . $this->_mod_regexp . '*)s*)';
$this->_parenth_param_regexp = '(?:((?:w+|'
. $this->_param_regexp . '(?:s*,s*(?:(?:w+|'
. $this->_param_regexp . ')))*)?))';
$this->_func_call_regexp = '(?:' . $this->_func_regexp . 's*(?:'
. $this->_parenth_param_regexp . '))';
}
function _compile_file($resource_name, $source_content, &$compiled_content)
{
if ($this->security) {
// do not allow php syntax to be executed unless specified
if ($this->php_handling == SMARTY_PHP_ALLOW &&
!$this->security_settings['PHP_HANDLING']) {
$this->php_handling = SMARTY_PHP_PASSTHRU;
}
}
$this->_load_filters();
$this->_current_file = $resource_name;
$this->_current_line_no = 1;
$ldq = preg_quote($this->left_delimiter, '~');
$rdq = preg_quote($this->right_delimiter, '~');
if (count($this->_plugins['prefilter']) > 0) {
foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) {
if ($prefilter === false) continue;
if ($prefilter[3] || is_callable($prefilter[0])) {
$source_content = call_user_func_array($prefilter[0],
array($source_content, &$this));
$this->_plugins['prefilter'][$filter_name][3] = true;
} else {
$this->_trigger_fatal_error("[plugin] prefilter '$filter_name' is not implemented");
}
}
}
$search = "~{$ldq}*(.*?)*{$rdq}|{$ldq}s*literals*{$rdq}(.*?){$ldq}s*/literals*{$rdq}|{$ldq}s*phps*{$rdq}(.*?){$ldq}s*/phps*{$rdq}~s";
preg_match_all($search, $source_content, $match, PREG_SET_ORDER);
$this->_folded_blocks = $match;
reset($this->_folded_blocks);
$source_content = preg_replace($search.'e', "'"
. $this->_quote_replace($this->left_delimiter) . 'php'
. "' . str_repeat("
", substr_count('\0', "
")) .'"
. $this->_quote_replace($this->right_delimiter)
. "'"
, $source_content);
preg_match_all("~{$ldq}s*(.*?)s*{$rdq}~s", $source_content, $_match);
$template_tags = $_match[1];
$text_blocks = preg_split("~{$ldq}.*?{$rdq}~s", $source_content);
for ($curr_tb = 0, $for_max = count($text_blocks); $curr_tb < $for_max; $curr_tb++) {
if (preg_match_all('~(<?(?:w+|=)?|?>|languages*=s*["']?s*phps*["']?)~is', $text_blocks[$curr_tb], $sp_match)) {
$sp_match[1] = array_unique($sp_match[1]);
usort($sp_match[1], '_smarty_sort_length');
for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) {
$text_blocks[$curr_tb] = str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$text_blocks[$curr_tb]);
}
for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) {
if ($this->php_handling == SMARTY_PHP_PASSTHRU) {
$text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '<?php echo ''.str_replace("'", "'", $sp_match[1][$curr_sp]).''; ?>'."
", $text_blocks[$curr_tb]);