Er zijn bepaalde dingen die u in dit verband moet begrijpen.
De eerste is dat PHP kan worden uitgevoerd als een web server module
of als een standalone executable
. Wanneer u het als een webservermodule uitvoert, opent u het vanuit de browser, alle gerelateerde webtechnologieën (html/css/js)
enz. worden ontleed en werken samen.
Wanneer u het vanaf de opdrachtregel uitvoert met cron zoals zeg /usr/bin/php mywebpage.php
dan ontleden/begrijpt het uitvoerbare php de andere webtechnologieën NIET en zal uw pagina dus mislukken.
Er zijn twee oplossingen hiervoor:
-
Herschrijf alleen die web-enabled onderdelen zodat de ajax/js-dingen worden afgehandeld door PHP. De vuistregel is dat als je een CLI php-script gebruikt, het ALLEEN kern-PHP mag bevatten. Dit is de voorkeursmanier. Je moet de ajax-aanroepen naar binnen hetzelfde bestand verplaatsen en er gewoon een enkele uitvoeringsstroom van maken, zoals elk gewoon programma.
-
Als u om de een of andere reden het bovenstaande niet kunt doen, kunt u iets als dit proberen:
/path/to/browser http://mysite/mywebpage.php
. Wat u hier doet, is dat u een uitvoerbaar browserbestand uitvoert en vervolgens de URL van de webpagina aanroept. Op deze manier wordt de pagina uitgevoerd binnen de browseromgeving en kan deze de ajax/js-aanroepen ontleden en begrijpen.