5

IPまたはコンピューター名を介してLANネットワークでphp読み取りファイルを使用すると。

$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」は共有設定されており、全員がフル コントロールの権限を持っています。Web ブラウザーをテープに記録した場合: \192.168.0.200\testshare\1.txt ファイル 1.txt の内容を読み取りました。手伝って頂けますか?すべてのアイデアが私を助けてくれます、どうもありがとう。

4

2 に答える 2

3

ローカルでそれを行う方法(Win 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";
}
?>

リモート サーバーの場合は、ソフトウェア ファイアウォールでポート 137,445 を許可することを忘れないでください。これもセキュリティ リスクであるため、外部の WAN トラフィックがアクセスできないようにしてください。XP で C: ドライブがデフォルトで共有されていた時代を覚えています。

于 2012-04-26T05:18:11.690 に答える
0

PHP 経由 でネットワーク共有(smb)にアクセスしようとしているようです。

file_get_contents次のプロトコルのみをサポートします。

SMB はサポートされているプロトコルではありませんが、利用可能な実装がいくつかあります。私の検索で出てくるのは smbwebclient (未テスト) です:

于 2012-04-26T06:30:26.467 に答える