シェルを介してパラメーター付きのphpファイルを実行する必要があります。
phpファイルの実行方法は次のとおりです。
php -q htdocs/file.php
パラメータ 'show'を渡す必要があり、
php -q htdocs/file.php?show = show_name
効かない
パラメータを設定してphpファイルを実行するために実行するコマンドを誰かが説明してくれたら、とてもありがたいです。そうでない場合は、正しい方向に導いてください。
test.php:
<?php
print_r($argv);
?>
シェル:
$ php -q test.php foo bar
Array
(
[0] => test.php
[1] => foo
[2] => bar
)
Webサーバーがある場合(PHPインタープリターだけでなく、LAMP/LNMP/etcもインストールされている場合)-これを試してください
wget -O - -q -t 1 "http://mysite.com/file.php?show=show_name" >/dev/null 2>&1
ここで:
PHPの「exec」では、次のようになります。
function exec_local_url($url) {
exec('/usr/bin/wget -O - -q -t 1 "http://'. $_SERVER['HTTP_Host'] .'/'
. addslashes($url) . '" >/dev/null 2>&1'
);
}
// ...
exec_local_url("file.php?show=show_name");
exec_local_url("myframework/seo-readable/show/show_name");
したがって、argc/argvを処理するためにスクリプトを変更する必要はなく、通常どおり$ _GETを使用できます。
バックグラウンドで実行されるジョブが必要な場合は、例を参照してください。 nix/Windows、PHPコードからのバックグラウンドプロセスのセットアップ?
Cronジョブでwgetを使用したアプローチを使用しています。それが役に立てば幸い。
他の回答(これは非常に正しいです)に加えて、次のように環境パラメーターとして引数を渡すこともできます。
FOO=42 BAR=quux php test.php
その後、スーパーグローバル$_ENV
。
PHPファイルから使用している場合は、popen()を使用して次のように実行できます。
$part = $show_name; //or whatever you want with spaces
$handle = popen("php -q nah.php -p=". escapeshellarg($part) . " 2>&1", "r");
これは、シェル引数として安全に使用できるように、$part
変数を引用符で囲む(およびその中の引用符をエスケープする)ためにescapeshellarg()関数を使用します。