1. ホーム
  2. php

[解決済み] コマンドラインから実行する PHP スクリプトに変数を渡す

2023-04-29 19:25:07

質問

コマンドラインから実行する必要のある PHP ファイルがあります (via. crontab ). この場合 type=daily を渡す必要がありますが、私は方法がわかりません。私は試してみました。

php myfile.php?type=daily

を実行しましたが、このようなエラーが返されました。

入力ファイルを開くことができませんでした: myfile.php?type=daily

どうすればよいですか?

どのように解決するのですか?

この ?type=daily 引数(末尾は $_GET の配列で終わる) は、ウェブアクセスのページに対してのみ有効です。

のように呼び出す必要があります。 php myfile.php daily のように呼び出して、その引数を $argv の配列 (これは $argv[1] であるため $argv[0]myfile.php ).

もし、そのページがウェブページとしても使われているのであれば、2つの選択肢が考えられます。シェルスクリプトでアクセスする方法と ウィジェット からそれを呼び出すか、あるいは クーロン :

#!/bin/sh
wget http://location.to/myfile.php?type=daily

または、PHPファイルで、コマンドラインから呼び出されているかどうかを確認します。

if (defined('STDIN')) {
  $type = $argv[1];
} else {
  $type = $_GET['type'];
}

(注意: おそらくは $argv が実際に十分な変数やその他を含んでいるかどうかを確認する必要があるでしょう。)