2012-11-05 18 views
2

從我的index.php文件裏面說,我想檢查另一個PHP文件是否執行沒有錯誤(如果包含它,並且包含它),並且如果它確實失敗並返回致命錯誤,我會顯然想不包括它。有什麼建議麼?謝謝...檢查外部PHP文件中的致命錯誤?

+0

你真的需要包括嗎?如果沒有,並且執行腳本時沒有與顯式傳遞的變量/函數共享任何變量/函數就沒問題,這是非常可能的。 – goat

+0

實際上沒有,我不需要在事實之後包含它......我真的只需要一個函數來檢查一個PHP文件是否導致致命錯誤,如果是,則返回TRUE;如果不是,則返回FALSE ... –

回答

1

您可以使用php CLI的-lparameter

php -l filename.php 

和解析輸出。

$o = `php -l filename.php`; 

if (strpos($o, 'No syntax errors detected') !== false) { 
    echo 'No errors'; 
} else { 
    echo 'There are errors'; 
} 
0

您可能不想單獨運行第二個文件。也就是說,你可以做兩件事之一...

1)如果你真的想用它作爲一個包含單獨執行,你可以調用它的東西,如CURL,並讓它輸出預期的結果或者將會被讀取並據此採取行動的失敗消息。

2.)將您的函數/類/ etc執行包含在try/catch語句中,以正確處理遇到的任何錯誤。 http://php.net/manual/en/language.exceptions.php可能會幫助你多一點這種方法。

0

這將運行腳本作爲一個單獨的進程,沒有共享變量/功能/狀態/範圍等等

$cmd = 'php file.php'; 
exec($cmd, $ar, $exit_status); 
$wasFatal = $exit_status == 255; 

有那麼它就和一個php.ini這是不同於運行一個真正的好機會無論你的web服務器php.ini是什麼,所以期待配置的差異,甚至可能是PHP版本。