2012-04-26 101 views
4

当我通过ip或计算机名称使用php读取LAN网络上的文件。使用php读取ip或计算机名网络上的文件

$url = "\\\\192.168.0.200\\testshare\\1.txt"; 
     if(file_exists($url) == TRUE) { 
      echo "OK"; 
     } else { 
      echo "Error"; 
     } 

结果:总是“错误”。 如果我使用函数file_get_contents($ url,true);结果:

Warning: file_get_contents(\\192.168.0.200\testshare\1.txt) [function.file-get-contents]: failed to open stream: Permission denied in D:\services\htdocs\test.php on line 3 

当然,文件夹“testshare”设置共享和许可所有人完全控制。如果我的网络浏览器是磁带:\ 192.168.0.200 \ testshare \ 1.txt它读取文件1.txt的内容。 你能帮我吗?每个想法都能帮助我,我非常感谢。

+0

我想你不能检查其他电脑上的文件存在 – 2012-04-26 04:56:35

+0

什么版本的Windows? – 2012-04-26 05:09:08

+0

这里的技术术语是,您正尝试访问* SMB共享*。我没有使用PHP的经验。如果您将其输入浏览器(IE?),则操作系统(Windows)会处理它,这显然是有效的。 – deceze 2012-04-26 05:09:38

回答

2

这里是你如何能做到这一点(Win 7的)当地,你可能要跳过某些防火墙障碍如果一个远程服务器

在桌面上创建一个空文件夹,并把你的文件,然后向右点击它,然后点击分享...然后特定的人,然后在下拉选项框中选择每个人。

你会得到看起来像testshare (file://YOUR-PC-NAME/Users/YourAcount/Desktop/testshare)

然后,只需使用该地址,像这样一个地址:记得要允许端口在您的软件防火墙137445

<?php 
$url = "//YOUR-PC-NAME/Users/YourAcount/Desktop/testshare/1.txt"; 
if(file_exists($url) == TRUE) { 
    echo "OK"; 
} else { 
    echo "Error"; 
} 
?> 

对于远程服务器,也这是一个安全风险,所以不要让外部WAN流量有权访问。我记得在XP默认共享C:盘的日子里。

+0

适用于本地,但不适用于另一系统的网络驱动器... – 2013-07-11 07:33:22

+0

http://stackoverflow.com/questions/2874796/fopen-wont-open-files-across-network 这帮了我... – 2013-07-11 08:53:23

+0

@ RaheelHasan你也可能会发现这个答案有趣http://stackoverflow.com/questions/14367687/read-file-on-a-network-drive/14367719#14367719 – 2013-07-11 09:31:55

1

这只是错字的问题,您需要使用/,而不是\

$url = "//192.168.0.200/testshare/1.txt"; 
相关问题