作品:
php -q /home/site/public_html/cron/file.php
動作しません:
php -q /home/site/public_html/cron/file.php?variable=1
助言がありますか?変数を $_GET として送信する必要があります (または送信しない)
このようなことをします
curl http://hostname/cron/file.php?variable=1
file.php では、$_GET[変数] を取得するコードを管理します。
これは単純なブラウザ呼び出しとして動作しますが、シェル/ターミナルでのみ動作します
お役に立てれば
コマンド ライン引数は$argv
、通常の$_GET
/ $_POST
-Arraysの代わりに渡されます。
もちろん、これは URI スタイルのパラメーター (その?variable=1
部分) では機能しません。したがって、次のように呼び出す必要がありますphp -q /path/to/script.php 1
。
別の方法として、次を使用できますgetopt
。
<?php
$shortopts = implode("", array(
"v:"
));
$longopts = array(
"variable:", // Required value
);
$options = getopt($shortopts, $longopts);
var_dump($options);
のように呼び出しますphp -q /path/to/script.php --variable=1
。
これを回避する最も簡単な方法は (public_html が公共の WWW であると仮定すると)、cron で wget または curl を呼び出して PHP ファイルにアクセスし、URL 変数が通常どおりに処理されるようにすることです。
-qは頭がないことを意味するので、私が想定するget-fieldsのためのスペースはありません、少なくとも私はそう願っています:D
グリーツ