Shell run/execute php script with parameters
test.php:
<?phpprint_r($argv);?>
Shell:
$ php -q test.php foo barArray( [0] => test.php [1] => foo [2] => bar)
If you have webserver (not only just php interpreter installed, but LAMP/LNMP/etc) - just try this
wget -O - -q -t 1 "http://mysite.com/file.php?show=show_name" >/dev/null 2>&1
where:
- « -O - » — (Letter "O", not zero!) redirect "downloaded html" to stdout
- « >/dev/null 2>&1 » — redirect stdout & stderr output to nowhere
- « -q » — quiet wget run
- « -t 1 » — just 1 try to connect (not like default 20)
In PHP's "exec" it'll be smth like this:
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");
So, you don't need to change your scripts to handle argc/argv, and may use $_GET as usually do.
If you want jobs runned in background - see for ex. Unix/Windows, Setup background process? from php code
I use approach with wget in my cron jobs; hope it helps.