$code = 'php statement';
// getting perse error
function perse_error_check($code){
if(eval($code) === "true"){
return "no perse error";
}
if(eval($code) === "false"){
return "perse error found";
}
}
// getting fatal error
function fatal_error_check($code){
.......................................
.......................................
}
你能帮我完成第二个功能吗?其实我不确定天气是否可能。
答案 0 :(得分:1)
以下将PHP代码写入另一个文件。 然后它使用命令行执行来解析文件并检查错误:
/* Put the code to be tested in a separate file: */
$code = '<?php echo "Test"; ?>';
file_put_contents('check.php', $code);
/* Parse that file and store the message from the PHP parser */
$x = exec( 'php -l check.php');
/* Check the message returned from the PHP parser */
if(preg_match('/Errors parsing/i',$x))
{
echo 'The code has errors!';
}
else
{
echo 'The code looks good!';
}
/* delete the file */
unlink('check.php');
好处是代码不会运行,只是被解析。但是我假设您会将该代码写入文件并使用它...所以像其他人一样,请非常小心。使用open_basedir(并测试它)来限制对特定目录的访问,在将代码包含在生产中之前手动检查代码......等等。
答案 1 :(得分:-1)
有一种简单的方法。将您的PHP代码放在另一个文件中。例如:index.php和check.php。将您的PHP代码放在check.php中。
现在在index.php中写道:
$check_data = file_get_contents("yourhosturl/allotherdirectory/check.php");
if(preg_match("/Fatal error/",$check_data)){
echo "fatal error found";
}