gpt4 book ai didi

php - 在 Eclipse 中查看未使用(未链接和未包含)的 PHP 文件

转载 作者:可可西里 更新时间:2023-10-31 23:06:18 24 4
gpt4 key购买 nike

我有一个相当大的 Ecplise 项目,其中包含 2000 多个 php 文件,我怀疑其中有很多未使用。

我想生成一个包含所有其他文件中未提及的所有 php 文件的列表。提到我的意思是:

  • include('file.php')
  • require_once('file.php')
  • $linktoimportantpage = "file.php"

因此,几乎所有不包含该项目中任何其他文件名字符串的文件。

有什么办法吗?

最佳答案

我编写的这个脚本应该可以满足您的需求。它将搜索项目中的所有 PHP 文件。然后它会在每个文件的内容中搜索那个文件名,如果这个文件名存在,显然你不想删除它,所以我们可以从数组中删除它。然后,您会留下一组未在您的项目中“提及”的文件(该数组还将包括文件路径)。

首先让我们设置脚本:

$path = realpath('/path/to/your/files');
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
$php_files = array();

接下来,循环将每个文件名添加到一个数组中,以便我们稍后搜索:

foreach ($objects as $name => $object)
{
// only add php files to the array
if($object->getExtension() !== 'php')
{
continue;
}

$php_files[$name] = $object->getBasename();
}

再次循环,但这次搜索每个文件:

foreach ($objects as $name => $object)
{
$path_parts = pathinfo($name);

// again, only search php files to the array
if($path_parts['extension'] == 'php')
{
// get the contents of each php file
$file_contents = file_get_contents($name);

// check each file name for an include
foreach($php_files as $path => $filename)
{
// check if the file exist in this file contents
if(strpos($file_contents, $filename) !== false)
{
// remove it from array if it exists in a file
unset($php_files[$path]);
}
}
}
}

打印数组以查看哪些文件未包含在内:

print_r($php_files);

这将按以下方式返回一个数组:

Array
(
[/path/to/file1.php] => file1.php
[/path/to/file2.php] => file2.php
[/path/to/file3.php] => file3.php
)

关于php - 在 Eclipse 中查看未使用(未链接和未包含)的 PHP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18660948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com