2009-08-30 49 views
0

所以,我的問題如下。當我通過Web瀏覽器加載頁面時,此代碼工作正常。但是當我從命令行運行這樣的腳本時:「php script.php」就會炸彈。PHP的error_log&包括不工作

的script.php是:

<?php 
include_once('class.WebsiteScraper.php'); 
$ws = new WebsiteScraper(); 
$ws->test(); 
... 
?> 

class.WebsiteScraper.php是:

<?php 
echo 'test'; 
class WebsiteScraper { 
    public function test() { 
     echo 'test2'; 
    } 
} 
?> 

這將返回錯誤:當通過命令行稱爲

PHP Fatal error: Call to undefined method WebsiteScraper::test() in ... on line 4

不僅這發生。 另一件事要注意,當我追加的

error_log('hey there'); 

要script.php的,它拋出,而不是我的錯誤日誌中的錯誤到標準輸出。但是當從網絡瀏覽器調用它時,它會將它放入錯誤日誌中。有任何想法嗎?

+0

是否有錯誤@ include文件不被發現的? –

+0

不,就是這樣......如果我把一個虛擬文件名放在錯誤中,我會期待一個錯誤b/c「文件不存在」。所以它找到了它,但無法將該方法加載到我的課堂上? –

回答

1

使用command line option--ini檢查命令行中加載相同的配置文件作爲阿帕奇:

php --ini 

你也可以撥打phpinfo()

似乎你的文件沒有被包含 - 可能是由於包含路徑。

編輯:

嘗試增加

error_reporting(E_ALL); 
+0

就是這樣!我正在使用MAMP,並且我編輯了MAMP的ini文件(與Apache一起使用)。但是sys ini文件在別的地方。 –

+0

韋爾普,堅持下去。我已經檢查了兩個ini文件,並且都正確地路徑。但是當從命令行「error_log」調用腳本仍然不起作用時。 –

+0

此外,包含的文件沒有返回錯誤 - php能夠「打開流」,但沒有任何文件中的代碼被計入/執行。 –