以下php代码的含义?

dig*_*ter 0 php

伙计我经常使用以下代码,但没有正确理解函数的确切语义.特别是对于最后两个str_replace函数.任何人都可以解释我这里发生了什么(稍微详细一点)?

$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);
Run Code Online (Sandbox Code Playgroud)

net*_*der 5

  1. \用正斜杠替换反斜杠/(之后不使用该变量).
  2. 从服务器超全局获取文档根目录(通常是Apache配置DocumentRoot指令).
  3. 替换文档根目录或application/config.php文档根字符串的任何出现并将其存储$web_root(对我来说似乎是无用的代码).
  4. 替换application/config.php文档根字符串中的任何出现并将其存储$srv_root(再次,看起来像无用的代码,因为文档根目录应该是目录,而不是文件).

结论:似乎这段代码可以翻译成以下内容,并且这些"计算"实际上都不是必需的:

$doc_root = $_SERVER['DOCUMENT_ROOT'];
$web_root = '';
$srv_root = $doc_root;
Run Code Online (Sandbox Code Playgroud)

甚至更短:

$doc_root = $srv_root = $_SERVER['DOCUMENT_ROOT'];
$web_root = '';
Run Code Online (Sandbox Code Playgroud)