Я хочу найти php-файлы с кодом вне функции — в основном игнорировать файлы библиотек и классов.
Затем проверьте, вызывают ли эти файлы функцию — это функция безопасности, которая называется require_login ()
Это возможно?
Поиск файлов, которые имеют код вне классов и функций, нетривиален.
Вместо:
grep -rEL "^\ *(function|([Aa]bstract |[Ff]inal )?class|[Ii]nterface)" \
| grep ".php$" \
| xargs grep -L require_login
Конечно, напишите синтаксический анализатор PHP, чтобы вы могли легко понять, что находится «вне» функции.
Как бы вы справились с чем-то вроде этого:
sillyprint.php:
<?php
print($global);
main_library.php:
function foo() {
$global = "Hello, world";
include('sillyprint.php');
}
Будет ли код «sillyprint» быть «вне» функции? Это только когда-либо выполняется, когда ВНУТРИ функции …