2010-04-06 94 views
-1

我有一個文件夾\folder\包含.php.inc.dat文件讀取.dat文件爲 「RB」 讀取二進制

  • .php可以訪問.inc沒有問題

  • 的根目錄上面但是當.inc嘗試將.dat使用fopen('mydat.dat', "rb");它給出了一個錯誤,它無法找到訪問mydat.dat\folder\myinc.inc

當然它不能找到它,因爲.inc是一個文件不是一個文件夾。爲什麼php會這樣對待它?

任何爲什麼PHP是試圖找到.inc.dat想法?

或任何其他替代fopen($filename, "rb")

+0

即使您不明白錯誤信息的含義,其他人也會這樣做。所以,複製和粘貼確切的錯誤信息總是非常好的主意。這會節省你的時間和其他人的猜測。它不會說「它無法在\ folder \ myinc.inc中找到mydat.dat」。它只是說錯誤發生的文件名。 – 2010-04-06 16:21:12

+1

不,我是對的。這是PHP寫入錯誤消息的方式。你嘗試各種錯誤,但都有相同的模板。一切都以同樣的方式:「在某些路徑中」是發生錯誤的文件的名稱。相信我。 – 2010-04-06 17:33:29

回答

0

聽起來像你有safe_mode啓用,但沒有open_basedir的值,或者在文件外面有文件。將.dat文件放在指定給該選項的路徑中。

+1

從我鏈接到的文檔中:「該指令不受***安全模式打開或關閉的影響。」請檢查'open_basedir'。 – 2010-04-06 15:59:03

+0

那麼你是說'open_basedir'根本不存在? – 2010-04-06 16:11:43

+0

安全模式聽起來像安全模式。它在錯誤消息中包含這些詞,「安全模式」。去搞清楚。 – 2010-04-06 16:15:44

1

瞭解文件系統的基礎知識。 你的工作目錄仍然在webroot中。它不會將其更改爲\ folder \(儘管看起來新版本的PHP在當前文件位置內查找文件)。

無論如何,如果你想打開在同一目錄中的文件,dirname(__FILE__)總是在myinc.inc你

可以使用

fopen(dirname(__FILE__).'/mydat.dat', "rb"); 
+0

@donpal爲什麼你不試試我的代碼而不是空洞的爭論?那麼.htaccess有什麼問題?你的工作目錄超出.htaccess範圍 – 2010-04-06 17:35:25

-1

當過我們應對PHP文件。有必要給路徑+文件名以避免這種類型的錯誤。