-1
該文件存在。我只是用這個語句驗證文件的語法。
exec("php -l $file", $error, $exit);
如果沒有錯誤,應該設置$ exit = 0。換句話說,文件中的語法是正確的。但在我的情況下,它將$ exit設置爲5,$ error作爲空數組。我想知道這是怎麼回事。提前致謝。
另外,我正在使用MAMP。 PHP5.3。 $ file是文件內容的哈希字符串。 $ code是file_get_contents()函數獲取的文件內容的字符串。我不認爲$ translateFile和$ 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;
}
如果您打算將'$ exit'作爲exec()'的第三個參數,那麼您的引號是不匹配的。 –
我會問清楚..'$ file'中有什麼? –