By Vikram Vaswani
Melonfire
2000 年 11 月 7 日
さて、私たちは PHP の FTP に関連する多数の関数に触れてきましたが、これらは単なる関数であり、これらの関数の真の力を示すという目標からは程遠いです。 、WEB 経由でファイルをアップロードおよびダウンロードできるプログラムを作成する必要があります。これが私たちがやることです。コードに入る前に、この例は PHP のさまざまな FTP 関数の使用法を説明するためのものであり、エラー分析などの多くの点で完璧ではないということをお伝えしておきます。独自のプログラムに適用したい場合は、いくつかの変更を加える必要があります。
プログラムには次のファイルが含まれています:
index.html - ログイン ファイル
actions.php - プログラムに必要な FTP コード
include.php - ファイル リストとコントロール ボタンを表示するプログラムのメイン インターフェイス。
「index.html」から始めましょう:
-------------------------------------- - ---------------------------------------------
---------------- --- ----------------------------------------------- --- ----------
これは、サーバー名、ユーザー名、パスワード、入力ボックスを備えたログイン フォームです。入力した変数は $server、$username、$password 変数に保存されます。フォームが送信されると、actions.php が呼び出され、FTP 接続が初期化されます。
変数 $action を値 CWD で action.php に渡す「hidden」に注目してください。
これは action.php ファイルのソース コードです:
------------------------------------- --------- -------------------------------------
//チェックフォーム 送信されたデータが不完全な場合、エラーが報告されます。プログラムを改善したい場合は、ここにもっと完全な入力検出機能があるはずです
if (!$server || !$username || ! $password)
{
echo "送信されたデータは不完全です! ";
else
{
// 続きを読む
?>
---- ------------------------ -------------------------------------------- ------------- ------------
次は変数「actions」です。このプログラムでは次のアクションが可能です:
"action=CWD"
を変更します。作業ディレクトリ
"action=Delete"
指定したファイルを削除する
"action =Download"
指定したファイルをダウンロードする
"action=Upload"
指定したファイルをアップロードする
ファイルを注意深く調べると、HTML が含まれている include.phpインターフェイスには多くのフォームが含まれており、それぞれが特定の関数を指しており、各フォームにはフィールド (通常は非表示) が含まれており、フォームが送信されると、対応する関数が実行されます。
例:「削除」を押すと、「actions.php」に「action=Delete」が送信されます
これら4つの機能を動作させるために、actions.php内のコードは次のようになります:
------ ---------------------------------------------------- ---- -------------------
// アクション: ディレクトリを変更
if ($action == "CWD")
{
//特定のコード
}
// アクション: ファイルを削除
else if ($action == "Delete")
{
// 特定のコード
}
// アクション: ファイルをダウンロード
else if ($action == "Download" )
{
// 特定のコード
}
// アクション: ファイルをアップロード
else if ($action == "Upload")
{
// 特定のコード
}
?> --- --------------------------------------------------- --- ------------------
上記の特定のコードは、指定された関数を実装し、ループを終了します。これらにはすべて、次の手順が含まれます。
------ -------------------------------------------------- -- ------------
カスタマイズされた関数
connect() を使用して FTP サーバーに接続し、ログインします
適切なディレクトリに移動します
選択した機能を実行します
リストを更新して、変更の結果を表示します
include("include.php") を通じてファイルリストとコントロールボタンを表示します
接続を閉じます
--------------- ----------- -------------------------------------- ----------- -------
注:
次の関数は複数ファイル操作をサポートしています。つまり、FOR ループを使用して実装される「action=Delete」と「action=Download」です。
変数 $cdir と $here は各段階でリアルタイムに更新されます。
いよいよ 3 番目のファイル、プログラムのユーザー インターフェイスを設定する include.php に到達します。
「include.php」には 3 つのフォーム、現在のディレクトリ リストを取得し、それらを 3 つの変数
$files (現在のディレクトリ内のファイルを含む)、
$file_sizes (対応するファイル サイズ)、
および $dirs に格納するための PHP コードが含まれています。 (サブディレクトリ名を含む)
最初の形式では、$dirs を使用して、「action=CWD」に対応するドロップダウン ディレクトリ リストを生成します。
2 番目の形式では、$files $file_sizes を使用して利用可能なファイルのリストを作成し、各ファイルはチェックボックスを使用します。このフォームのアクションは、「action=Delete」および「action=Download」に対応します
3 番目のフォームは、次のように、FTP サイトにファイルをアップロードするために使用されます:
------------- --- --------------------------------------------------- --- --------------