2014-02-24 2 views
0

Im은 PHP 코드를 문자열로 실행하는 프로젝트입니다. PHP 컴파일러 나 인터프리터를 사용하지 않아서 .. eval() 함수를 사용하기로 결정했습니다. Codeigniter Framework 치명적인 오류를 얻을 수있는 방법이eval()에 치명적인 오류가 발생했습니다

MY 코드

CONTROLLER

$code = $this->input->post('code'); 
$functionCall = $this->input->post('funCall'); 
$expOut = $this->input->post('expectedOutput'); 
$integrate = $code." ".$functionCall; 
    ob_start(); 
    eval($integrate); 
    $ret = ob_get_contents(); 
    ob_end_clean(); 

if($ret === $expOut){ 
     //all work fine 
    } 
else{ 
    redirect('main/wrongCode'); 
    } 
} 

모두 잘 작동하지만 출력이 때 치명적인 error..it가 redirect('main/wrongCode'); .. 을 실행하지 않습니다가요? 그래서 나는 조건을 만들 수 있니?

+0

PHP Exceptions를 보라 처리 PHP 예외를 사용할 수 있다고 생각? – goseo

+0

메신저 5.4.12..xD 또는 jst 5 .. :) – Zurreal

답변

0

난 당신이

try{ 
    ob_start(); 
    eval($integrate); 
    $ret = ob_get_contents(); 
    ob_end_clean(); 
}catch(Exception $e) { 
    echo 'Caught exception: ', $e->getMessage(), "\n"; 
} 
if($ret === $expOut){ 
    //Do sth 
} 
else{ 
    // Do sth else 
} 

사용중인 PHP 버전은 무엇

+0

메신저 .. 예외적으로 일하고 있습니다.하지만 여전히 작동하지 않습니다. xD – Zurreal

+0

http://stackoverflow.com/a/2146171/1764442 – goseo

+0

감사합니다. .. 이제 얻었습니다 .. 정말로 작동합니다 .. 그냥 버퍼링 개체 안에 함수 예외 처리기를 만듭니다 .. :) 당신의 생각에 대한 감사합니다 :) ^^ – Zurreal

관련 문제