0

cron ジョブから呼び出している PHP ドキュメントに次のものがあります。

if (is_file($docRoot . $row['cron_action_script_path'])) {

    system("php " . $docRoot . $row['cron_action_script_path'] . $row['params']);
}

ただし、エラーが発生しますCould not open input file: /path/to/file.php?params=1

しかし、私はif文を通り過ぎていますis_file('/path/to/file.php')

そのため、PHP ドキュメントへの SHH 呼び出しに get 変数を含めることに問題があるようです。

とにかくこのあたりはありますか?なんらかの方法で自分のパラメーターを動的に呼び出せるようにする必要があります。

4

3 に答える 3

4
if (is_file($docRoot . $row['cron_action_script_path'])) {
    $_GET['params'] = $row['params'];
    include $docRoot . $row['cron_action_script_path'];
}
于 2011-09-19T18:15:40.737 に答える
3

php CLIを呼び出して、QUERY STRINGWebサーバー固有のデータを使用しようとしています。パラメータを受け入れるようにスクリプトを修正するか、、などのプログラムを使用してスクリプトを呼び出す必要がありlynxますcurlwget

したがって、システムコールを次のようにします。

system("wget http://yourdomain.com/path/to/file.php?params=1 > /dev/null");

次に、を許可するWebサーバーを使用してそのスクリプトを実行する必要がありQUERY STRINGます。

編集:

変数の使用に合わせて調整:(.comの後にスラッシュが必要な場合があることに注意してください)

system("wget http://yourdomain.com" . $row['cron_action_script_path'] . $row['params'] . " > /dev/null");
于 2011-09-19T18:12:46.493 に答える
1

is_readableの代わりに試してくださいis_file。ファイルは、現在のユーザーが読み取ることができなくても存在できます。

ただし、そのようなパラメーターを渡すことは機能しません。$_GETコマンドラインで変数を実行することはできません。PHP がコマンドライン引数をどのように期待して処理するかを見てみましょう。

于 2011-09-19T18:11:48.303 に答える