Se si dispone di server web (non solo interprete solo php installato, ma LAMP/LNMP/etc) - basta provare questo
wget -O - -q -t 1 "http://mysite.com/file.php?show=show_name" >/dev/null 2>&1
dove:
- «-O -» - (Lettera "O", non zero!) Redirect "HTML scaricato" per stdout
- «>/dev/null 2> & 1» - reindirizzare stdout & uscita stderr verso il nulla
- «q» - tranquillo wget corsa
- «-t 1 »- solo tenta di connettersi (non come valore predefinito 20)
In PHP di "exec" sarà smth come questo:
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");
Pertanto, non è necessario modificare gli script per gestire argc/argv e potrebbe utilizzare $ _GET come di consueto.
Se si desidera che i lavori siano eseguiti in background, vedere per es. Unix/Windows, Setup background process? from php code
Io uso l'approccio con wget nei miei lavori cron; spero che sia d'aiuto.
Una risposta migliore rispetto a quella accettata: Utilizzare l'eseguibile "php-cgi" anziché "php". Vedi: http://stackoverflow.com/a/11965479/543738 –