当我通过ip或计算机名在LAN网络上使用php读取文件时。
$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 :(得分:2)
以下是如何在本地执行此操作(Win 7),如果是远程服务器,您可能必须跳过一些防火墙障碍
在桌面上创建一个空白文件夹并将文件放入其中,然后右键单击它并单击“与...共享”,然后在下拉选项框中选择所有人。
您将获得一个类似于testshare (file://YOUR-PC-NAME/Users/YourAcount/Desktop/testshare)
然后就这样使用那个地址:
<?php
$url = "//YOUR-PC-NAME/Users/YourAcount/Desktop/testshare/1.txt";
if(file_exists($url) == TRUE) {
echo "OK";
} else {
echo "Error";
}
?>
对于远程服务器,请记住允许软件防火墙中的端口137,445,这也存在安全风险,因此不要让外部WAN流量访问。我记得xp默认情况下共享C:驱动器的日子。
答案 1 :(得分:0)
听起来您正试图通过PHP访问网络共享(smb)。
file_get_contents
仅支持following protocols.
SMB不是受支持的协议,但有一些实现可用。在我的搜索中不断出现的是smbwebclient(未经测试):