meaning of the following php code?
Guys I have been using the following code quite ofte开发者_StackOverflown but haven't properly understood the exact semantics of the functions. Especially for the last two str_replace functions. Can anybody explain me whats exactly happening here(in a little detail)?
$this_file = str_replace('\\', '/', __FILE__);
$doc_root = $_SERVER['DOCUMENT_ROOT'];
$web_root = str_replace(array($doc_root, 'application/config.php'), '', $doc_root);
$srv_root = str_replace('application/config.php', '', $doc_root);
- Replace the backslashes
\
with forward slashes/
(the variable is not used after that). - Get the document root from the server super-global (typically will be the Apache config DocumentRoot directive).
- Replace any occurence of the document root or
application/config.php
from the document root string and store it in$web_root
(seems like useless code to me). - Replace any occurence of
application/config.php
from the document root string and store it in$srv_root
(again, seems like useless code, because a document root should be a directory, not a file).
Conclusion: It seems like this code could be translated into the following, and that none of these "calculations" are actually necessary:
$doc_root = $_SERVER['DOCUMENT_ROOT'];
$web_root = '';
$srv_root = $doc_root;
Or even shorter:
$doc_root = $srv_root = $_SERVER['DOCUMENT_ROOT'];
$web_root = '';
精彩评论