Heim >Backend-Entwicklung >PHP-Tutorial >哪位高手能说明一下discuz X2.5 upload/index.php文件思路!

哪位高手能说明一下discuz X2.5 upload/index.php文件思路!

WBOY
WBOYOriginal
2016-06-23 14:22:291279Durchsuche

discuz

discuz X2.5 upload/index.php代码如下,主说针对运行步骤(架构思路)说明一下,越详细越好,非常感谢!!!
<?php/** *      [Discuz!] (C)2001-2099 Comsenz Inc. *      This is NOT a freeware, use is subject to license terms * *      $Id: index.php 27617 2012-02-07 08:24:14Z monkey $ */if(!empty($_SERVER['QUERY_STRING']) && is_numeric($_SERVER['QUERY_STRING'])) {	$_ENV['curapp'] = 'home';	$_GET = array('mod'=>'space', 'uid'=>$_SERVER['QUERY_STRING']);} else {	$url = '';	$domain = $_ENV = array();	$jump = false;	@include_once './data/sysdata/cache_domain.php';	$_ENV['domain'] = $domain;	if(empty($_ENV['domain'])) {		$_ENV['curapp'] = 'forum';	} else {		$_ENV['defaultapp'] = array('portal.php' => 'portal', 'forum.php' => 'forum', 'group.php' => 'group', 'home.php' => 'home');		$_ENV['hostarr'] = explode('.', $_SERVER['HTTP_HOST']);		$_ENV['domainroot'] = substr($_SERVER['HTTP_HOST'], strpos($_SERVER['HTTP_HOST'], '.')+1);		if(!empty($_ENV['domain']['app']) && is_array($_ENV['domain']['app']) && in_array($_SERVER['HTTP_HOST'], $_ENV['domain']['app'])) {			$_ENV['curapp'] = array_search($_SERVER['HTTP_HOST'], $_ENV['domain']['app']);			if($_ENV['curapp'] == 'mobile') {				$_ENV['curapp'] = 'forum';				if(@$_GET['mobile'] != 'no') {					@$_GET['mobile'] = 'yes';				}			}			if($_ENV['curapp'] == 'default' || !isset($_ENV['defaultapp'][$_ENV['curapp'].'.php'])) {				$_ENV['curapp'] = '';			}		} elseif(!empty($_ENV['domain']['root']) && is_array($_ENV['domain']['root']) && in_array($_ENV['domainroot'], $_ENV['domain']['root'])) {			$_G['setting']['holddomain'] = $_ENV['domain']['holddomain'] ? $_ENV['domain']['holddomain'] : array('www');			$list = $_ENV['domain']['list'];			if(isset($list[$_SERVER['HTTP_HOST']])) {				$domain = $list[$_SERVER['HTTP_HOST']];				$id = intval($domain['id']);				switch($domain['idtype']) {					case 'subarea':						$_ENV['curapp'] = 'forum';						$_GET['gid'] = $id;						break;					case 'forum':						$_ENV['curapp'] = 'forum';						$_GET['mod'] = 'forumdisplay';						$_GET['fid'] = $id;						break;					case 'topic':						$_ENV['curapp'] = 'portal';						$_GET['mod'] = 'topic';						$_GET['topicid'] = $id;						break;					case 'channel':						$_ENV['curapp'] = 'portal';						$_GET['mod'] = 'list';						$_GET['catid'] = $id;						break;				}			} elseif(count($_ENV['hostarr']) > 2 && $_ENV['hostarr'][0] != 'www' && !checkholddomain($_ENV['hostarr'][0])) {				$_ENV['prefixdomain'] = addslashes($_ENV['hostarr'][0]);				$_ENV['domainroot'] = addslashes($_ENV['domainroot']);				require_once './source/class/class_core.php';				C::app()->init_setting = true;				C::app()->init_user = false;				C::app()->init_session = false;				C::app()->init_cron = false;				C::app()->init_misc = false;				C::app()->init();				$jump = true;				$domain = C::t('common_domain')->fetch_by_domain_domainroot($_ENV['prefixdomain'], $_ENV['domainroot']);				$apphost = $_ENV['domain']['app'][$domain['idtype']] ? $_ENV['domain']['app'][$domain['idtype']] : $_ENV['domain']['app']['default'];				$apphost = $apphost ? 'http://'.$apphost.'/' : '';				switch($domain['idtype']) {					case 'home':						if($_G['setting']['rewritestatus'] && in_array('home_space', $_G['setting']['rewritestatus'])) {							$url = rewriteoutput('home_space', 1, $apphost, $domain['id']);						} else {							$url = $apphost.'home.php?mod=space&uid='.$domain['id'];						}						break;					case 'group':						if($_G['setting']['rewritestatus'] && in_array('group_group', $_G['setting']['rewritestatus'])) {							$url = rewriteoutput('group_group', 1, $apphost, $domain['id']);						} else {							$url = $apphost.'forum.php?mod=group&fid='.$domain['id'].'&page=1';						}						break;				}			}		} else {			$jump = true;		}		if(empty($url) && empty($_ENV['curapp'])) {			if(!empty($_ENV['domain']['defaultindex']) && !$jump) {				if($_ENV['defaultapp'][$_ENV['domain']['defaultindex']]) {					$_ENV['curapp'] = $_ENV['defaultapp'][$_ENV['domain']['defaultindex']];				} else {					$url = $_ENV['domain']['defaultindex'];				}			} else {				if($jump) {					$url = empty($_ENV['domain']['app']['default']) ? (!empty($_ENV['domain']['defaultindex']) ? $_ENV['domain']['defaultindex'] : 'forum.php') : 'http://'.$_ENV['domain']['app']['default'];				} else {					$_ENV['curapp'] = 'forum';				}			}		}	}}if(!empty($url)) {	$delimiter = strrpos($url, '?') ? '&' : '?';	if(isset($_GET['fromuid']) && $_GET['fromuid']) {		$url .= $delimiter.'fromuid='.$_GET['fromuid'];	} elseif(isset($_GET['fromuser']) && $_GET['fromuser']) {		$url .= $delimiter.'fromuser='.$_GET['fromuser'];	}	header("HTTP/1.1 301 Moved Permanently");	header("location: $url");} else {	require './'.$_ENV['curapp'].'.php';}function checkholddomain($domain) {	global $_G;	$domain = strtolower($domain);	if(preg_match("/^[^a-z]/i", $domain)) return true;	$holdmainarr = empty($_G['setting']['holddomain']) ? array('www') : explode('|', $_G['setting']['holddomain']);	$ishold = false;	foreach ($holdmainarr as $value) {		if(strpos($value, '*') === false) {			if(strtolower($value) == $domain) {				$ishold = true;				break;			}		} else {			$value = str_replace('*', '.*?', $value);			if(@preg_match("/$value/i", $domain)) {				$ishold = true;				break;			}		}	}	return $ishold;}?>

回复讨论(解决方案)

$_ENV['curapp'] = 'home'; 不知道是什么意思

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:如何确定远程服务器的路径Nächster Artikel:文件操作的问题