Re: [請益] fopen無法開啟網路磁碟檔案

看板PHP作者 (...)時間10年前 (2013/08/01 12:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《anawak (...)》之銘言: : 已爬文,不過沒看到我需要的解答。 : 一共有 3 台電腦: : 正式伺服器 (Win8,xampp) : http://192.168.1.1/test.php : 測試伺服器(Win7, xampp, 我自己的電腦) : http://mysite.local/test.php : 網路上的芳鄰(XP) : \\UserPC\Shared\a.txt : 在伺服器上都有掛載成 Z:\ : 資料夾的權限: : 安全性:所有人都可讀寫(everyone) : 共用:所有人都可讀寫(everyone) : 程式碼: : <?php : $fh = fopen('Z:\a.txt', 'r'); : ?> : 我用自己的測試伺服器(Win7),可以讀到 UserPC的 a.txt : 在正式伺服器(Win8)卻不行。 : 錯誤訊息:failed to open stream: Permission denied : 大家都在同一個內網,怎麼會正式伺服器可以連, : 測試伺服器卻不能連?怎麼會這樣? : 我目前只想到,會不會是 Win8 跟人家比較不一樣? : Win8不能隨便存取別人的檔案? : 通常都是保護自己的檔案不讓別人存,應該不會禁止自己去存取別人的檔案吧? 終於找到問題了,更~ 我的電腦的 xampp ,是用程式方式執行,無此問題。 但正式伺服器的 xampp ,是用服務方式執行。 而預設帳號(可能是system)禁止做這件事。 所以去服務裡面,把 apache 那支叫出來, 改設為 administrator 帳號,並設定密碼, 這樣就可以成功把檔案寫到網路上的芳鄰。 而且不掛載成自己的網路磁碟也可以。 那 fopen 就要寫成 fopen('\\\\UserPC\Shared\a.txt'); 因為 \ 代表跳脫,所以 2 個斜線代表 1 個斜線。 那後面為什麼只要 1 個斜線?因為這裡的 \S 沒有意義, 所以斜線就是斜線。(但如果是正規表示法就不一樣了) 當然也可以寫成 fopen('\\\\UserPC\\Shared\\a.txt'); 意思一樣。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: anawak 來自: 114.45.88.249 (08/16 00:58)
文章代碼(AID): #1H-UidNS (PHP)
文章代碼(AID): #1H-UidNS (PHP)