Há certas coisas que você precisa entender a esse respeito.
A primeira é que o PHP pode ser executado como um
web server module
ou como um standalone executable
. Quando você o executa como um módulo de servidor web, você o abre a partir do navegador, todas as tecnologias web relacionadas (html/css/js)
etc são analisados e funcionam em uníssono. Quando você o executa a partir da linha de comando usando o cron, digamos
/usr/bin/php mywebpage.php
então o executável php NÃO analisa/entende as outras tecnologias da web e, portanto, sua página falhará. Existem duas soluções para isso:
-
Reescreva apenas as partes habilitadas para a web para que o material ajax/js seja tratado pelo PHP. Basicamente, a regra geral é que, se você estiver executando um script php CLI, ele deve conter SOMENTE o PHP principal. Esta é a forma preferida. Você precisará mover as chamadas ajax para dentro do mesmo arquivo e apenas torná-lo um único fluxo de execução como qualquer programa comum.
-
Se por algum motivo você não puder fazer o acima, tente algo assim:/path/to/browser http://mysite/mywebpage.php
. Aqui o que você está fazendo é executar um executável do navegador e, em seguida, chamar o URL da página da web. Desta forma a página está sendo executada dentro do ambiente do navegador e poderá analisar e entender as chamadas ajax/js.