If the current address bar has a query character and is a number, the condition is set.
Query character: www.baidu.com/index.php?aaa=bbb aaa=bbb is the query character
If the condition is established, the home is assigned to $_env[' Curapp ']; $_env can be understood as a hyper-global array similar to $_get. Here the $_env[' Curapp ' can be understood as the selected entry file.
and passes an array to $_get, the first member of the array specifies the controller name, and the second member formulates a parameter called UID, which is the user ID.
If the conditions here, 127 lines of the IF statement must be false, the following a large number of code is not executed, has jumped to 137 rows, directly loading the portal file.
If the first if statement is False
Cache_domain.php is a system-generated configuration file. The $domain array is declared in the cache_domain.php file.
If $_env[' domain ' is empty, set the currently selected app to Forum (forums), then skip to line 137.
If $_env[' domain ' is not empty
25: Split the current host domain name into an array by the. Number.
27: The acquired domain name is intercepted from the position of the first. For example, www.baidu.com, after the cut, baidu.com
28: If [' Domain '] [' app '] is not empty and is an array, and the domain name currently being accessed is also an item of its array value. The
30: Find the key for the current domain name in the app array as the selected app. For example, the currently accessed domain name is www.baidu.com and found in the app array:
Then the value of $_env[' Curapp '] is home.
If the currently selected app is mobile (mobile), $_env[' Curapp ' is reset to forum
If the currently selected app is default or the currently selected app does not exist in the default app array, the currently selected app is assigned a null value.
37: This condition will be established after the root domain name is set and the root domain name is currently being accessed.
44: The conditions of this line do not know under what circumstances will be established. I did it several times. The list array is always empty. The following if statement is not executed, and it is not clear what the list array is for.
74: If the domain name that is currently accessed is a level two domain name, and this level two domain name is not reserved domain name, this condition will be established, the Checkholdmain function is used to check whether it is a reserved domain name.
75: Get the domain name prefix
76: Get root domain Name
77: Load Frame Entry file
This string of code can be seen as an initialization operation. These are the properties of the Discuz_application class.
85: This line of code will query the database through the Table_common_domain class to find the application type of the root domain binding. Fetch_by_domain_domainroot
If the app type is home, how about if the app type is group.
General analysis
Code Analysis Learning for Discuz (ii) Home file