2012-08-12 62 views
-3

我試圖用這個文件管理器稱爲"Php Win2K File Manager" 但是我收到下面獲得多個錯誤在PHP代碼

棄用這些錯誤:通話時傳遞的引用在c棄用:\ xampp \ htdocs \ test \ explorer.php on line 166
已棄用:在第214行的C:\ xampp \ htdocs \ test \ explorer.php中不推薦使用呼叫時傳遞參考警告:opendir(c :/ inetpub/wwwroot /,c:/ inetpub/wwwroot /)[function.opendir]:系統找不到指定的路徑。 (code:3)in line 91
C:\ xampp \ htdocs \ test \ explorer.php警告:opendir(c:/ inetpub/wwwroot /)[function.opendir]:未能打開目錄:沒有這樣的文件或目錄在91行:C:\ xampp \ htdocs \ test \ explorer.php

這是爲什麼?是因爲我在Linux服務器上而不是在Win2K上運行它?

My page

+2

一個Win2k服務器。殺我。 – 2012-08-12 23:52:19

+3

Erg ...如果您正在運行Linux服務器,則您的文件路徑不會植根於「C:」驅動器中...... – esqew 2012-08-12 23:54:08

+1

如果直接在您的問題中發佈代碼,您通常會得到更好的結果(錯誤消息指示行號;用它作爲在這裏發佈的行的指南)。 – 2012-08-12 23:55:19

回答

2

呼叫時通過按引用意味着一個變量被傳遞到用它前面的操作者&的函數。例如(someFunction(&$var);)。

PHP 5.4不推薦使用通過引用傳遞參數,這意味着您不能在函數調用中通過引用傳遞變量,正確的方法是定義函數,以便變量始終通過引用傳遞。對於上述調用的函數定義看起來像:

function someFunction(&$iAmByReference) { 
    $iAmByReference = 42; 
} 

你打電話時,你不需要用&先於變量,通話只是看起來像:

$x = 32; 
someFunction($x); 
echo $x; // 42 

你將不得不修改代碼,以便函數定義將該變量聲明爲引用變量,並從任何函數調用中刪除&

你說你正在Linux上運行,但考慮到PHP錯誤消息,它顯示你仍然在Windows上。 PHP說你的腳本是C:\xampp\htdocs\test\explorer.php這是一個Windows路徑。

最有可能的$_GET['dir']不正確,或者腳本確定路徑錯誤。不知道那裏發生了什麼,我不得不看你是如何訪問腳本。在第一種情況下,它看起來像試圖打開一條實際上由逗號分隔的2條路徑。