安装在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
我通过更改服务器注册表中的某些内容来解决此问题,如本讨论的最后一个答案所述:
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添加到您的注册表中。
您可能让xampp将apache作为服务安装并通过该apache运行php脚本。并且apache服务(以localsystem运行)不允许以您的用户帐户的方式访问网络。
尝试file:
URI方案:
是的,我知道这是一篇旧文章,但是我仍然找到了,如果还有其他人……在Windows(具有更新的服务器)上,请验证目标计算机上是否已安装并启用了SMB。