2012-08-12 63 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条路径。