该文件存在。我只是用这个语句验证文件的语法。
exec("php -l $file", $error, $exit);
如果没有错误,它应该设置 $exit = 0 。换句话说,文件中的语法是正确的。但是在我的情况下,它将 $exit 设置为 5 并将 $error 设置为空数组。我想知道这是怎么回事。提前致谢。
另外,我正在使用 MAMP。PHP5.3。$file 是文件内容的哈希字符串。$code 是 file_get_contents() 函数获取的文件内容的字符串。我认为 $translatedFile 和 $error 在我的问题中并不重要。
function validateSyntax($code,$translatedFile, &$error){
$translatedFile = $this->getTranslatedLanguageFile($translatedFile);
$file = 'cache/'.md5(time());
file_put_contents( $file, $code);
exec("php -l $file",$error,$exit);
foreach($error as $k=>$v){
$error[$k] = str_replace($file, $translatedFile, $v);
}
unlink($file);
if($retcode==0)return true;
return false;
}