Normaal geef ik de voorkeur aan het aanroepen van een php script via de command line via "php":
Code
| /usr/bin/php /path/script.php |
Maar op sommige servers is php gewoonweg niet beschikbaar via de command line, en moet je terugvallen op wget: Wget doet in principe precies wat een browser ook doet. Het aanroepen van een url en het antwoord van de server opslaan. Een browser zal bijvoorbeeld index.html opvragen. Daarna bekijk zo'n browser de inhoud van de file. Ziet hij daarin een verwijzing naar /styles/sheet.css, dan zal hij deze ook opvragen bij de server (of een andere server).
Hetzelfde geldt bijvoorbeeld voor plaatjes.
Wget beperkt zich tot 1 aanroep en is daarmee geschikt om een url aan te roepen. Nadeel is wel dat iedereen op elk moment je scripts aan kan roepen als hij de url kent en de server publiek beschikbaar is. Dat is af te vangen door met .htaccess toegang te beperken tot de server die jij toegang wilt geven (localhost) of in je script te controleren op $_SERVER['REMOTE_ADDR']. Maar dat terzijde.
Wat ik eigenlijk wilde delen:
Code
| /usr/bin/wget http://somehost.nl/path/script.php?actie=doen |
werkt prima, maar
Code
| /usr/bin/wget http://somehost.nl/path/script.php?actie=doen&parameter=1 |
wilde maar niet zijn werk doen.
Het duurde even voor ik door had, dat de & het commando breekt. De eerste ingeving was om het ampersandje te escapen met een backslash. Maar dat was niet de oplossing. Die ligt er in om quotes te plaatsen om de url:
Code
| /usr/bin/wget 'http://somehost.nl/path/script.php?actie=doen' |