我使用的fopen詳細的錯誤從文件上的fopen
$fh = fopen($path, 'r') or die('Could not open file');
讀現在我contantly得到錯誤無法打開文件。我檢查了文件路徑,甚至將文件的權限更改爲777.有沒有一種方法可以得到一個詳細的錯誤報告,說明爲什麼文件不能被類似於mysql_error()打開?
我使用的fopen詳細的錯誤從文件上的fopen
$fh = fopen($path, 'r') or die('Could not open file');
讀現在我contantly得到錯誤無法打開文件。我檢查了文件路徑,甚至將文件的權限更改爲777.有沒有一種方法可以得到一個詳細的錯誤報告,說明爲什麼文件不能被類似於mysql_error()打開?
打開錯誤報告,或者在生產環境中(從PHP 5.2.0開始),您應該也可以使用error_get_last()
。
是的。
PHP有詳細的錯誤信息給你。
你只需打開它。
要dislay它在屏幕上的腳本的頂部添加這些2線:
ini_set('display_errors',1);
error_reporting(E_ALL);
或者,如果你希望它來代替記錄,
ini_set('log_errors',1);
ini_set('display_errors',0);
error_reporting(E_ALL);
另外請注意,使用模()是非常糟糕的做法。
對於5.2之前的php版本(缺少error_get_last()),您可以使用track_errors。
ini_set('track_errors', 1);
$fh = fopen('lalala', 'r');
if (!$fh) {
echo 'fopen failed. reason: ', $php_errormsg;
}
+1 5.2版本前後仍在安裝。很好,不知道這個! – 2010-03-18 14:50:39
再次+1 - 不知道track_errors ini var,這很方便:-) – richsage 2010-03-18 15:14:20
$fh = fopen($path, 'r') or die (error_get_last());
哦,得到\ _Last \ _error()...這是不是說明:$ php \ _errormsg更好。刪除我的回答贊成這個功能。 – VolkerK 2010-03-18 14:01:08
無需刪除它。他可能在一個只有5.1的項目上(就像我現在的那樣)! – webbiedave 2010-03-18 14:13:26
確信...... – VolkerK 2010-03-18 14:20:05