TOP  >  なーお'nぶろぐ  >  なーお  >  Business  >  [Business] PHPでFTPクライアント

なーお さんの日記

[2009-3] 
 
2009
3月 8
(日)
00:51
[Business] PHPでFTPクライアント
本文

仕事にPHPを使って自身新分野に挑戦中! :-D

概要

 こちらのデータロガーユニット を使ってPLCから受信したEXCELレポートを、ユーザーがWEBサーバー経由で最新版をダウンロードする、というもの。 EXCELのファイル名が固定化していないので、WEBサーバーにFTPクライエントを立てて、ユニットのFTPサーバーへ接続してファイル名を得ることから。

ASPで?

 サーバーはWindowsXPのIIS。 ならばASPだね、ってことでASPでFTPクライエントコードを探したのだが、見つからず。 結局、ASP.netなこのページか。
WebClientクラスでFTPによりファイル転送を行うには? [@IT .NET TIPS]

 しかし、このためだけに.aspxに踏み込むのはいかにも時間の無駄。 やはり色々準備されているPHPかな。 XOOPSで馴染んできたPHPなのでハードルは低くなっているし、イントラ内のシステムなので、セキュリティーへの配慮も負担が少ない。

PHPで?

 ということで、PHP5をインストール。 IIS+PHPはあまりメジャーではないのだが、下記ページを参考にSAPIでやってみたらOK。
PHP5 インストール・設定方法(IIS 編) [Windows で PHP を使おう]
(注意)
 IISで仮想ディレクトリを使う場合、「No input file specified」というエラーが出たら

doc_root =

としておくと良さげ。

FTP関数?

 そして、PHP5に準備されているFTP関数を使えば、OK?
FTP関数 [PHP マニュアル]

 これ、間違いなく使えて他のPCのWEBサーバーともログイン・「ftp_nlist」によるファイル名取得、ともOKなのに、このデータロガーユニット内のFTPサーバーとは相性が悪いのか、「ftp_nlist」でも「ftp_rawlist」でも 空の配列が返るだけで取得できない。 :-(

 半日悩んだ挙句、下記のページを参考に fputsとfgetsで返答文字列を確認しながらやってみると、どうやらうまくいきそうな予感。
FTPクライアント [PHPのちょっとしたTIPS]

 最終的には、上のページで配布されている、このクラスを使うことにして、無事にファイル名を得ることができた。

まとめ

 私にとっては新分野ではあったが、ひとつ心配なハードルがクリアできたので、このまま行くつもり。
 設備制御分野では「電気屋」と「システム屋」のドメインが分かれているので、こういうコラボで小ぶりな仕事には、私のようなマルチ人間は便利で重宝されるため、今後も突っ込んでいきたいと思う。 8-)

閲覧(39955)

新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ