Re: [請益] fopen無法開啟網路磁碟檔案
※ 引述《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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):