SQLの窓

2009年12月05日


PHP : コマンドプロンプトから実行するPHPを利用したFTPダウンロード

ブラウザでダウンロード
PHP を使った FTP ダウンロードのサンプルですが、パスワードの扱いが唯一気になります。
コマンドプロンプトで入力させると、エコーで表示されてしまうので、
最も簡単な方法でエコーを非表示にする方法を考えてみました。

VB.net で小さいプログラムを書きましたが、
何か他の処理に転用できるかもしれません。

<?
// 引数がある場合は、その引数をパスワードとする
if ( $argc == 2 ) {
	$pass = $argv[1];
}
// 引数が無い場合は入力させる
else {
	$pass = rtrim(fread( STDIN, 128 ));
}

$base_dir = "/lightbox.on.coocan.jp/homepage/download";
$file_name = "WinOfSql102.lzh";

$conn = ftp_connect("ftp.on.coocan.jp");
if (!$conn) {
	die('接続できません' . "\n");
}

$result = @ftp_login($conn, "lightbox.on.coocan.jp", $pass); 
if (!$result) {
	die('ログインできません' . "\n");
}

ftp_pasv($conn, true);

ftp_get($conn, $file_name, "$base_dir/$file_name", FTP_BINARY );

ftp_close($conn);

print "処理が終了しました\n";

?>

以下はバッチファイルの内容ですが、実際やってみると
パイプやリダイレクトをすると、そのアプリで色を変えても
反映されませんでした。それで、別々に実行しています。
@echo off

echo 以下にパスワードを入力して下さい & pass 0 0 & pass | php.exe ftp_download.php > message.txt & cls & pass 0 15 & type message.txt

また、cls を実行しておかないと、color 0F を実行すると見えてしまいます。
color コマンドは前景と背景を同じ色にできないのでわざわざ
そういう機能を持たせています( "pass 0 0" で何も見えなくなります )

なにか特別な方法で見えてしまう可能性もありますが、
ダイレクトに見せてしまうよりマシな一つの方法として試してみました
Module MyModule

' ********************************************************
' * クリップボードにあるファイル情報を標準出力へ
' ********************************************************
Sub Main()

	Dim argv As String()

	argv = System.Environment.GetCommandLineArgs()

	if argv.Length = 1 then
		Dim str As String = Console.ReadLine()
		Console.WriteLine( str )
	end if

	if argv.Length = 3 then
		Console.BackgroundColor = Integer.Parse(argv(1))
		Console.ForegroundColor = Integer.Parse(argv(2))
	end if

End Sub

End Module

vb.net のビルドをしたい場合は、以下を参考にして下さい
VB.net : ( vbc.exeで )自分でも簡単にビルドできる HTTP プロトコルを用いたダウンローダ





タグ:ftp PHP
【PHP + 通信の最新記事】
posted by lightbox at 2009-12-05 09:24 | PHP + 通信 | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり