2010-04-30 2 views
0

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

Любые идеи?

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

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

+0

Вы уверены, что хотите запустить загруженный PHP-код? –

+0

PAste ur Код, чтобы показать, как U сделал это .... –

+0

Я уверен, что единственный человек, который может загрузить, - это Admin, мне :) – SoLoGHoST

ответ

1

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

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

+0

Благодарим за отзыв. Я использую текущую версию php, но другие могут не использовать эту версию. В любом случае, я думаю о функции php-функции 'create_function' по какой-то причине, чтобы сделать функции уникальными, а не использовать include_once для добавления функций для общей совместимости. – SoLoGHoST

+0

Но разве вам теперь не нужно беспокоиться о своих именах переменных и конфликтах? И вам не расскажут об этих конфликтах при анализе, как вы делаете с функциями. Это будет труднее обнаружить ошибки. Просто мои $ 0,02. – Hans

Смежные вопросы