を使用して開いているディレクトリを読み取り、opendir()
そのディレクトリ内のファイルをループしようとしています。このスクリプトの最終的な目標は、読み取り中のディレクトリから特定のファイルを別の FTP サーバーに転送することです。
「FTP」の部分が私を悩ませているのですが、その理由がわかりません!
一部のサーバー (このスクリプトは複数のサーバーで実行されることが予想されます) で、次のエラーが表示されます。
Warning: opendir(ftp://...@jslsolutions2.flashsvr.com/streaming)
[function.opendir]: failed to open dir: FTP server reports 550
Can't find file in [PATH] on line 88
もちろん、[PATH] は PHP スクリプトへの実際のパスになります。
88 行目は次のとおりです。
if ($handle = opendir($from))
この変数$from
は完全な FTP パスを表します。
完全な FTP パスは次のとおりです。
ftp://[USERNAME]:[PASSWORD]@[SERVER]/streaming
ディレクトリが正しいことを確認しました。たとえば、ディレクトリをコピーして Web ブラウザに貼り付けると、Firefox は期待どおりに、すべてのファイルを含むディレクトリ ツリーを開きます。つまり、PHP は「ファイルが見つからない」と文句を言っていますが、実際には「ファイル」(つまりディレクトリだと思います) は存在します。
一体何が起こっているのですか?前述したように、このスクリプトは一部のサーバーで機能します。私がテストした Linux サーバーで問題なく動作するため、サーバーが Windows ベースであるかどうかが問題のようです。残念ながら、私はサーバーにアクセスできませんが、サーバー管理者は、問題を切り分けることができれば変更を加えることができます。
このエラーが表示されるのはなぜですか? また、回避策はありますか?