若是當前地址欄存在查詢字符,而且是一個數字,條件成立。
查詢字符:www.baidu.com/index.php?aaa=bbb aaa=bbb就是查詢字符
若是條件成立,則把home賦值給$_ENV['curapp'] ; $_ENV能夠理解爲相似於$_GET的超全局數組。這裏的$_ENV['curapp']能夠理解爲選中的入口文件。
並將一個數組傳遞給$_GET,數組的第一個成員指定了控制器名稱,第二個成員制定了一個叫uid的參數,就是用戶id。
若是這裏的條件成立了,127行的IF語句一定爲false,下面一大堆代碼都不用執行,一直跳到137行,直接就加載入口文件。
若是第一個IF語句爲false
cache_domain.php是系統生成的配置文件。$domain數組是在cache_domain.php文件中聲明的。
若是$_ENV['domain']爲空,直接將當前選中的應用設置爲forum(論壇) ,而後跳到137行。
若是 $_ENV['domain']不爲空
25:將當前主機域名按.號拆分爲數組。
27:將獲取到的域名從第一個.號後一位的位置截取,一直截取到末尾。例如www.baidu.com -> 被截以後 -> baidu.com
28:若是['domain']['app']不爲空,而且是數組,而且當前訪問的域名也是其數組值的一項。則:
30:在app數組中找到值爲當前域名的鍵,做爲選中的應用。好比當前訪問的域名爲www.baidu.com並且在app數組中找到了這一項:
那麼$_ENV['curapp']的值就爲home。
若是當前選中的應用是mobile(手機) ,$_ENV['curapp']重置爲forum
若是當前選中的應用是default或者當前選中的應用在默認應用數組中不存在,則把當前選中的應用賦值爲空。
php
37:這個條件會在設置根域名,而且當前訪問的也是這個根域名以後成立。
44:這一行的條件不知道什麼狀況下會成立。搞了好幾遍list數組始終爲空。下面的IF語句也不會執行,暫時不清楚list數組幹嗎用的。
74:若是當前訪問的域名是二級域名,而且這個二級域名不是保留域名,這個條件就會成立,checkholdmain函數用來檢查是不是保留域名。
75:獲取域名前綴
76:獲取根域名
77:加載框架入口文件
這一串代碼看得出來是初始化操做。這些都是discuz_application類的屬性。
85:這行代碼會經過table_common_domain類查詢數據庫,找到根域名綁定的應用類型。fetch_by_domain_domainroot
若是應用類型爲home如何如何,若是應用類型爲group如何如何。
大體分析
html