2012-06-04 15 views
-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; 
    } 
+1

如果您打算將'$ exit'作爲exec()'的第三個參數,那麼您的引號是不匹配的。 –

+0

我會問清楚..'$ file'中有什麼? –

回答

1

你引用了所有的參數,而不是隻在命令周圍使用引號並傳遞最後兩個參數。您很可能正在尋找

exec("php -l $file", $error, $exit); 
+0

對不起,我剛剛編輯了這個問題。 – knd

相關問題