Eval(). Как получить инфорамцию об ошибках?

TsarAlex

Новичок
Eval(). Как получить инфорамцию об ошибках?

Надо выполнить некоторый PHP-код находящийся в строке, и вывести информацию об ошибках (достаточно будет просто указать что ошибки есть или их нет). Делаю так:
PHP:
ob_start('check');
eval($php_code);
ob_end_flush();

function check($buffer){
  if(strpos($buffer,array('Error','Warning')) === TRUE)
    return 'Error and/or Warning in script';
  else
    return $buffer;
}
Но это не работает, так как при появлении в коде ошибок - выполнение строки прерывается.

Бывают способы валидации php-кода?

Чтобы лишни раз не лазить в исходники - была сделана возможность написания своих функций в админ. панели. Дак вот нужен хотя бы простейший механизм отладки.
 

TsarAlex

Новичок
Почитай этот топик, проблемы похожи
http://phpclub.ru/talk/showthread.p...highlight=php+l
Блин, спасибо громное.
Я нашёл этот топик через поиск, но, увидев там только нытьё фаната, сразу ушёл.

Оказалось всё что надо можно найти на этой странице:
http://ru3.php.net/php_check_syntax

Screjet forever ;)
 

Фанат

oncle terrible
Команда форума
Да, скрежет в том топике отличился :)

-~{}~ 23.01.05 13:11:

кстати, спасибо, что напомнил.
Давно пора было выкинуть это на помойку.
 

TsarAlex

Новичок
В функции php_check_syntax открылись целых две нехорошие проблемы:
1. не может проверять код, находящийся в строке
2. если в строке есть return/exit - то в браузере появляется "Script returned nothing"

Остаётся только один способ (на мой взгляд, для данного случая) -
PHP:
ob_start();
$result = eval($php_code);
$output = ob_end_clean();
Если результат и/или output - пустые, то значит явно есть ошибки.
 
Сверху