Нужно как-то перехватить ловушку include_once - PullRequest
0 голосов
/ 30 апреля 2010

Хорошо, я разрешаю загружать файлы, которые могут иметь несколько функций.Мне нужно иметь возможность каким-то образом перехватить ошибку include_once, чтобы, если function_exists уже был вызван и эта функция вызывалась в загружаемом файле, то он либо 1 отправляет сообщение об ошибке, либо 2 не включаетфайл вообще.

Любые идеи?

Я сделал это: @include_once($filename);, но затем я получаю пустую страницу вместо сообщения об ошибке.

ИлиЕсть ли лучший способ сделать это с именем файла и filepath?

1 Ответ

1 голос
/ 30 апреля 2010

Какую версию PHP вы используете? С пространствами имен в последних версиях вы можете обойти функцию существует конфликт.

В противном случае вы можете использовать функции токенизатора (http://us.php.net/manual/en/function.token-get-all.php, http://us.php.net/manual/en/tokens.php) с T_FUNCTION и анализировать их, сохранять файл или таблицу БД существующих функций, а при загрузке нового файла проверять их на таблицы и добавьте новые.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...