2016-07-15 2 views
0

실제로 실행중인 코드 줄이 eval()의 내부에서 실행되는지 확인하는 방법은 무엇입니까? 이 같은 것을 누군가 처리해야만 했나요?eval() 내부에서 코드가 실행되고 있는지 확인하는 방법은 무엇입니까?

+1

당신은 기본'eval' 기능을 무시할 수는 http://php.net/manual/en/function.override-function.php – cmorrissey

+0

는'위해서 var_dump()가'완벽하게 잘 작동 여기 문서를 참조하십시오 'eval()'. 문제는 라이브러리가 실행되는 동안'eval()'내부에서 라이브러리가 실행되면 구별해야한다는 것입니다. 전역 변수 솔루션을 시도했지만'eval()'내부에서 외부 변수와 동일한 변수에 액세스 할 수 있습니다. –

+1

최악의 경우 : 스택 추적을 통해 eval이 호출 된 곳을 확인 하시겠습니까? xdebug는 이것을 위해 몇 가지 유용한 기능을 가지고 있습니다. xdebug가 활성화되어 있습니까? –

답변

1

나는 그의 조언에 대해 Ryan Vincent에게 감사하고 싶습니다!

function is_eval() { $debug = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); foreach ($debug as $step => $trace) { // ignore class calls if (isset($trace['class'])) { continue; } if (isset($trace['function']) && 'eval' === $trace['function']) { return true; } } }

0

eval 기능에 넣으십시오.

debug_to_console ("코드 실행");

관련 문제