Windows下的php访问网络路径

问题描述 投票:15回答:4

安装在Windows XP计算机上的PHP(XAMPP)内部,试图读取本地网络服务器上存在的目录。我正在使用is_dir()检查它是否是我可以读取的目录。

在Windows资源管理器中,我键入\\\server\dir并显示该目录。当我映射网络驱动器时,也可以使用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

但是我从来没有成功?任何想法?thx

php networking path dir
4个回答
10
投票

我通过更改服务器注册表中的某些内容来解决此问题,如本讨论的最后一个答案所述:

http://bugs.php.net/bug.php?id=25805

还是要感谢VolkerK和Gumbo!我喜欢stackoverflow和他们的优秀人员,他们如此迅速地为您提供帮助!

编辑(摘自php.net):

[该服务对共享等网络资源的访问受到限制和管道,因为它没有凭据,必须使用null连接会议。以下注册表项包含NullSessionPipes和NullSessionShares值,用于指定管道和空会话可能连接到的共享:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters或者,您可以添加REG_DWORD值RestrictNullSessAccess键,并将其设置为0以允许所有null会话以访问在该计算机上创建的所有管道和共享。

将RestrictNullSessAccess = 0添加到您的注册表中。


7
投票

您可能让xampp将apache作为服务安装并通过该apache运行php脚本。并且apache服务(以localsystem运行)不允许以您的用户帐户的方式访问网络。


3
投票

尝试file: URI方案:


0
投票

是的,我知道这是一篇旧文章,但是我仍然找到了,如果还有其他人……在Windows(具有更新的服务器)上,请验证目标计算机上是否已安装并启用了SMB。

© www.soinside.com 2019 - 2024. All rights reserved.