2012-04-26 103 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"; 
相關問題