Writing Appropriately

職務経歴

PHP FTPをシェルスクリプトで実行する

楽天やヤフーショッピングのショップページ更新、商品画像や商品CSVのアップロード作業を、EC担当者やデザイナーさんが手作業でしていたので、社内のWEBシステムからボタン一つでできるようにした時に作成。PHPFTPが入っていないがシェルでは実行できるという環境は珍しくない。

  • リモートに存在しないディレクトリの事を考慮してmkdirコマンドも作成
  • FTPアップロード成功判定は"226 Transfer complete"をカウントして設定したファイル数と一致するかで判定

github.com

テスト

<?php

require  dirname(__FILE__).'/../application/libraries/ORE_FTPUpload.php';

$dir = dirname(__FILE__);
$ftp = new \ORE\ORE_FTPUpload();
$ftp->echo = true;
$ftp->flush = true;
$ftp->set_sh_dir($dir.'/tmp');
$ftp->add_file($dir.'/tmp/upload1.txt', '/test/dir1/uploaded1.txt');
$ftp->add_file($dir.'/tmp/upload2.txt', '/test/dir2/uploaded2.txt');
$ftp->host = 'ホスト名';
$ftp->uid = 'ユーザー名';
$ftp->pass = 'パスワード';
$ftp->execute();
$message = $ftp->message();
// $ftp->remove_sh();

結果

PHP FTP
PHP FTP