Shell run/execute php script with parameters Shell run/execute php script with parameters php php

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.


You need to read command line parameters from $argc and $argv.

Using a question mark is something you do in a URL and has nothing to do with executing PHP from a command line.

See also: http://www.sitepoint.com/php-command-line-1/