windows下php访问网络路径
在 Windows XP 计算机上安装的 PHP (XAMPP) 中,我试图读取本地网络服务器上存在的目录。 我使用 is_dir()
来检查它是否是我可以读取的目录。
在 Windows 资源管理器中,我输入 \\\server\dir
并显示该目录。 当我映射网络驱动器时,a 也可以使用 z:\dir
访问它。
在 PHP 中,我有该脚本:
<?php if( is_dir($dir){ echo 'success' } ) ?>
对于 $dir
我尝试过:
/server/dir
//server/dir
\server\dir
\\server\dir
\\\\server\\dir
和
z:\dir
z:\\ dir
z:/dir
z://dir
但我从未成功? 任何想法? 谢谢
within PHP (XAMPP) installed on a Windows XP Computer Im trying to read a dir which exists on a local network server. Im using is_dir()
to check whether it is a dir that I can read.
In Windows Explorer I type \\\server\dir
and that dir is being shown.
When I map a network drive a can access it with z:\dir
as well.
In PHP I have that script:
<?php if( is_dir($dir){ echo 'success' } ) ?>
For $dir
I tried:
/server/dir
//server/dir
\server\dir
\\server\dir
\\\\server\\dir
and
z:\dir
z:\\dir
z:/dir
z://dir
But I never get success?
Any idea?
thx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我通过更改服务器注册表中的一些内容解决了这个问题,如本次讨论的最后一个答案中所述:
http://bugs.php.net/bug.php?id=25805
无论如何,感谢 VolkerK 和 Gumbo!
我喜欢 stackoverflow 和他们很棒的人,他们帮助你的速度非常快!
编辑(取自 php.net):
将 RestrictNullSessAccess=0 添加到您的注册表中。
I solved it by changing some stuff in the registry of the server as explained in the last answer of this discussion:
http://bugs.php.net/bug.php?id=25805
Thanks to VolkerK and Gumbo anyway!
I love stackoverflow and their great people who help you so incredibly fast!!
EDIT (taken from php.net):
add RestrictNullSessAccess=0 to your registery.
您可能让 xampp 将 apache 安装为服务并通过该 apache 运行 php 脚本。 apache 服务(作为 localsystem 运行)是不允许以您的用户帐户的方式访问网络。
您可以通过启动 apache 作为控制台应用程序(xampp 目录中的 apache_start.bat 应该这样做)来测试这一点,然后再次运行该脚本。 您可以在 unc 路径中使用正斜杠和反斜杠。 我建议使用 //server/share 因为 php 不关心字符串文字中的 / 。
You probably let xampp install apache as service and run the php scripts trough this apache. And the apache service (running as localsystem) is not allowed to access the network the way your user account is.
You can test this by starting the apache as console application (apache_start.bat in the xampp directory should do that) and run the script again. You can use both forward and backward slashes in the unc path. I'd suggest using //server/share since php doesn't care about / in string literals.
尝试
file:
URI 方案:开头始终为
file://
。 下一个路径段是服务器。 如果它位于您的本地计算机上,请将其留空(请参阅第二个示例)。 另请参阅 Windows 中的文件 URI。Try the
file:
URI scheme:The begin is always
file://
. The next path segment is the server. If it’s on your local machine, leave it blank (see second example). See also File URIs in Windows.是的,我知道这是一篇旧帖子,但我仍然找到了它,如果其他人找到了......
在 Windows 上,对于较新的服务器,验证 SMB 是否已在目标计算机上安装并启用。
Yes, I know this is an old post, but I still found it, and if anyone else does...
On Windows, with newer servers, verify the SMB is installed and enabled on the target machine.