我正在处理别人的PHP代码,找不到某个内容的源文件。我正在寻找一个解决方案,让我可以轻松访问网站上显示的任何文件名。我做了一些研究,但不知道如何处理,希望能为网站的CSS找到类似Firebug的东西。
我发现了这个
PHP是这样的:
<?PHP
function getFileList($dir)
{
// array to hold return value
$retval = array();
// add trailing slash if missing
if(substr($dir, -1) != "/") $dir .= "/";
// open pointer to directory and read list of files
$d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading");
while(false !== ($entry = $d->read())) {
// skip hidden files
if($entry[0] == ".") continue;
if(is_dir("$dir$entry")) {
$retval[] = array(
"name" => "$dir$entry/",
"type" => filetype("$dir$entry"),
"size" => 0,
"lastmod" => filemtime("$dir$entry")
);
} elseif(is_readable("$dir$entry")) {
$retval[] = array(
"name" => "$dir$entry",
"type" => mime_content_type("$dir$entry"),
"size" => filesize("$dir$entry"),
"lastmod" => filemtime("$dir$entry")
);
}
}
$d->close();
return $retval;
}
?>
简短回答:不可能。
长答案:
生成您要查找的内容的文件取决于许多因素。对于一个简单的系统,它可以是1:1的文件名到url映射,如/index.php=>DOCUMENT_ROOT/index.php,而对于更复杂的系统,可能由数千个文件生成一行输出,每个文件打印一个字符。即使你的url是类似xyz.css的东西,它也可能是由.php文件生成的,甚至是由以.xyz结尾或根本没有文件扩展名的文件生成的。
大多数流行的CMS系统已经使用了某种url路由/apache(/whathing-webserver)重写,在不了解你所说的系统的情况下(你并没有真正提供太多信息),完全不可能给出正确的答案。
如果你得到了更多关于你正在研究的系统的信息(编程语言应该是php-是否使用了一些框架?php扩展?一些php-cms?也许是php和其他语言的混合?哪个Web服务器?在apache/lighttpd/的情况下…是否有重写/url路由?…)你可能会得到更好的答案。