在具有ip或computername的网络上使用php读取文件

在具有ip或computername的网络上使用php读取文件,php,file-get-contents,file-exists,Php,File Get Contents,File Exists,当我使用php时,通过ip或计算机名读取局域网上的文件 $url = "\\\\192.168.0.200\\testshare\\1.txt"; if(file_exists($url) == TRUE) { echo "OK"; } else { echo "Error"; } 结果:总是“错误”。 如果我使用函数文件获取内容($url,true);结果: 当然,文件夹“testshare”是设

当我使用php时,通过ip或计算机名读取局域网上的文件

$url = "\\\\192.168.0.200\\testshare\\1.txt";
        if(file_exists($url) == TRUE) {
            echo "OK";
        } else {
            echo "Error";
        }
结果:总是“错误”。 如果我使用函数文件获取内容($url,true);结果:

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

以下是如何在本地做到这一点(赢取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";
}
?>


对于远程服务器,请记住允许软件防火墙中的端口137445,这也是一种安全风险,因此不要让外部WAN流量访问。我记得xp默认共享C:drive的那些日子。

听起来像是在试图通过PHP访问网络共享

文件获取内容
仅支持

SMB不是受支持的协议,但是有一些实现可用。在我的搜索中不断出现的是smbwebclient(未测试):


我认为您无法在其他PC上检查文件是否存在windows的哪个版本?这里的技术术语是您试图访问SMB共享。我没有PHP这样做的经验。如果你把它输入浏览器(IE?),那么操作系统(Windows)就会处理它,这显然是可行的。这帮了我…@RaheelHasan你可能也会发现这个答案很有趣,嗯,谢谢。。。我已经弄明白了。。。我的问题与nullSession有关,通过在Windows Service for Apache上添加登录用户解决了。如果需要输入用户名和密码,如何使用PHP访问文件?
<?php
$url = "//YOUR-PC-NAME/Users/YourAcount/Desktop/testshare/1.txt";
if(file_exists($url) == TRUE) {
    echo "OK"; 
} else {
    echo "Error";
}
?>