回回 PPE : Petit Panda Extreme 回回

Tweets

Tweetsはまだありません。

Mobile

携帯電話からアクセス
クリックで拡大します
URLをメールアドレスに送信

RSS RSS

phpをコマンドラインで実行するときに引数をわかりやすくする工夫

自分用メモを兼ねて。

cron処理等のコマンドラインでphpを実行する場合、

user@host: php -c (php.iniファイル) examepl.php 引数1 引数2

のような形式でコマンド実行するが、
この場合php内部で引数を受け取ろうと思うと

if ( $argc > 1 ) {
    $var1 = $argv[1];
    $var2 = $argv[2];
}

といった代入方法になるので、順番を前後させることができない。
こうなると、久しぶりに手動実行しようかなといったときに
いちいち調べながら順番を間違えないように。。等と
無駄な手間をいつも発生させてしまう(自分の場合は)。

ので、そういったphpスクリプトの実行時に
一般的なLinuxコマンドと同じようにオプション形式で渡せるよう
変換処理を汎用化してやりつつ、$_REQUESTにつっこんでやることで
ブラウザ経由の処理をシミュレートすることも可能という寸法。

やり方は簡単、実行したいphpスクリプトのどアタマに

if ( $argc > 0 ) {
    foreach( $argv as $strArg ){
        if ( ( $arrTmp = explode('=', $strArg) ) && count($arrTmp) > 1 ) {
            $_REQUEST[$arrTmp[0]] = $arrTmp[1];
        }
    }
}

と書いておいてあげれば、あとは実行する際

user@host: php -c (php.iniファイル) example.php 引数1=値1 引数2=値2

とヒューマンリーダブルな形式で記述することができる。

2011-04-05 16:18:03投稿者 : 隼人
この記事のURL コメント(0) トラックバック(0) nice!
コメント一覧
コメントはまだありません。