如何使用函数或类之外的代码查找php文件并且不包含字符串?

时间:2014-11-14 16:05:16

标签: php grep

我想找到代码超出函数的php文件 - 基本上忽略库和类文件。

然后检查这些文件是否调用函数 - 它是一个名为require_login()

的安全函数

这可能吗?

2 个答案:

答案 0 :(得分:1)

查找具有类和函数之外的代码的文件并非易事。

相反:

  • 我正在寻找任何定义类,接口或函数的文件,并将它们排除并返回所有不匹配的文件。
  • 然后在该列表中寻找任何php文件。
  • 然后寻找任何调用require_login的东西。

grep -rEL "^\ *(function|([Aa]bstract |[Ff]inal )?class|[Ii]nterface)" \ | grep ".php$" \ | xargs grep -L require_login

答案 1 :(得分:0)

当然,编写一个PHP解析器,这样你就可以很容易地找出函数的“外部”。

你会如何处理这样的事情:

sillyprint.php:

<?php
    print($global);

main_library.php:

function foo() {
   $global = "Hello, world";
   include('sillyprint.php');
}

“sillyprint”代码是否会在函数“外部”?它只在INSIDE函数中执行...