スレッド表示 | フラット表示〕 全トピック 920 件中 687 番目 次≫ ≪前

他のマシンのファイルを開きたい

created: 2004-02-04 16:32 | modified: 2004-02-05 13:06 | reply: 9

[1263] 他のマシンのファイルを開きたい

user: 初心者 | created: 2004-02-04 16:32
FOPENで、LAN上にある他のマシンのファイルを開くことは出来るのでしようか。
"//sv_01/redhat/web/files/is03.htm"
こんな感じで指定するとエラーになってしまいます。
よろしくお願いします。
reply: 1265 返信 編集 削除

[1265] Re.他のマシンのファイルを開きたい

user: hamaji | created: 2004-02-04 18:21
Windows環境で試しましたが一応できましたよ。
$fp = fopen("//マシン名/共有フォルダ/test.txt", "r");
while ($line = fgets($fp, strlen($fp))){
echo $line . "\n";
}
fclose($fp)
または
$fp = fopen("ネットワークドライブ名:/test.txt", "r");
while ($line = fgets($fp, strlen($fp))){
echo $line . "\n";
}
fclose($fp)
などです。
Windows、Linux問わずアクセス権限が与えられている必要があると思いますが。
Parent: 1263  reply: 1266 返信 編集 削除

[1266] Re.Re.他のマシンのファイルを開きたい

user: 初心者 | created: 2004-02-04 19:31
hamajiさんありがとうございます。
私もWindows環境なのですが、下記の様なエラーになってしまいます。

Warning: fopen(//Sv_01/redhat/Web/Files/IS03.HTM): failed to open stream: Invalid argument in
Parent: 1265  reply: 1267 返信 編集 削除

[1267] モードがありません

user: hamaji | created: 2004-02-04 19:41
> 私もWindows環境なのですが、下記の様なエラーになってしまいます。

> Warning: fopen(//Sv_01/redhat/Web/Files/IS03.HTM): failed to open stream: Invalid argument in
『引数が無効です』と怒られています。

まず、第1引数のファイルパスを""で囲ってません。
次に第2引数のモードがありませんよ。
fopen("//Sv_01/redhat/Web/Files/IS03.HTM", "r")
などとすればよいと思います。

http://jp2.php.net/manual/ja/function.fopen.php
Parent: 1266  reply: 1268 返信 編集 削除

[1268] Re.モードがありません

user: 初心者 | created: 2004-02-04 20:33
説明不足で申し訳ありません。
下記の様にしているのですが。

$fname = "//Sv_01/redhat/Web/Files/IS03.HTM";

if ( !($handle = fopen ($fname, "r")) ) {
die( '<P><FONT COLOR="red"><B> ファイルオープン失敗!</B></FONT>' );
}
Parent: 1267  reply: 1270 返信 編集 削除

[1270] どういうエラーが出るのでしょうか?

user: hamaji | created: 2004-02-04 21:05
> 説明不足で申し訳ありません。
> 下記の様にしているのですが。
>
> $fname = "//Sv_01/redhat/Web/Files/IS03.HTM";
>
> if ( !($handle = fopen ($fname, "r")) ) {
> die( '<P><FONT COLOR="red"><B> ファイルオープン失敗!</B></FONT>' );
> }
で、どういうエラーが出るのでしょうか?

ところで、スクリプトを実行する前に
基本的なことは試されましたか?
・そのファイルはちゃんと存在しているか
・pingコマンドで疎通確認
・共有はかかっているか
・アクセス権限はあるか
・エクスプローラやネットワークコンピュータから直にアクセスできるか
等々…
Parent: 1268  reply: 1271 返信 編集 削除

[1271] サーバー替えてみましたが...

user: 初心者 | created: 2004-02-04 21:26
サーバーを替えてみましたが、状況は同じでした。
$fname = "//Sv_linux/redhat/Web/Onlchk/IS03.HTM";
if ( !($handle = fopen ($fname, "r")) ) {
die( '<P><FONT COLOR="red"><B> ファイルオープン失敗!</B></FONT>' );
}

エラーとしては、
Warning: fopen(//Sv_linux/redhat/Web/Onlchk/IS03.HTM): failed to open stream: Invalid argument in d:\www\home\onlchk\txtopdf2.php on line 33

ファイルオープン失敗!
上記のものが表示されます。
<meta http-equiv="REFRESH" content = "1;URL=file://Sv_linux/redhat/Web/Onlchk/IS03.HTM">
これだとうまくジャンプしますし、エクスプローラ等でも参照可能です。
Parent: 1270  reply: 1272 1273 返信 編集 削除

[1272] パーミッションがないだけでは?

user: hamaji | created: 2004-02-04 21:38
サーバーってLinuxですか?
私が行った先のスクリプトはWindows?Windowsでしたから。

Linuxならパーミッションがないだけではないでしょうか?
アクセス不可でも『 Invalid argument 』というエラーを吐くことは
ありえるかも知れないと思います。

phpは『NoBody』だった(確か)と思いますのでパーミッションの問題だと思いますが。。

そのLinuxにWebサーバーが入っているなら
$fp = fopen("http://192.168.1.1/test/hoge.html", "r")
等でやってみては?
Parent: 1271  返信 編集 削除

[1273] アクセス権

user: ゆうじ | created: 2004-02-05 00:25
hamajiさん、初心者さん、こんばんは。

うちのLAN(Win2000→Win98SE間)でも
同じエラーが出てfopenに失敗してましたので、
途中参加ですが参考までに。

私の所では、
読まれる側(Win98SE)のフォルダには、
フルアクセス+パスワード制限がかかっていたので、
このパスワードを「なし」にしたろころ
fopenでも読めるようになりました。

hamajiさんのおっしゃる通りアクセス権が邪魔して、
「Invalid argument」が出てるようです。


エクスプローラでは、
現在ログインしているユーザのアクセス権で読み出しできたのでしょうから、
PHP(HTTPD)= NoBody(Windowsでいうところの「Guestユーザー」)
でも読み出せるアクセス権に設定してあげれば良いのだと思います。


---
ただし何度か続けてアクセスしていると、
同じWarningメッセージが表示されて突然切断されてしまいます。
2分程度時間をおくと再びアクセス可能になります。
このあたりはネットワークの問題で
PHPと関係ないと思われますので参考まで。
Parent: 1271  reply: 1275 返信 編集 削除

[1275] パーミッションの変更

user: 初心者 | created: 2004-02-05 13:06
パーミッションの変更で解決しました。
hamajiさん、ゆうじさん有難うございました。
Parent: 1273  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 687 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑