Il y a certaines choses que vous devez comprendre à cet égard.
La première est que PHP peut être exécuté soit comme un web server module
ou en tant qu'standalone executable
. Lorsque vous l'exécutez en tant que module de serveur Web, vous l'ouvrez depuis le navigateur, toutes les technologies Web associées (html/css/js)
etc être analysé et travailler à l'unisson.
Lorsque vous l'exécutez à partir de la ligne de commande en utilisant cron, par exemple /usr/bin/php mywebpage.php
alors l'exécutable php N'analyse/comprend PAS les autres technologies Web et votre page échouera.
Il existe deux solutions pour cela :
-
Réécrivez uniquement ces parties Web afin que les éléments ajax/js soient gérés par PHP. Fondamentalement, la règle de base est que si vous exécutez un script php CLI, il doit contenir UNIQUEMENT le noyau PHP. C'est la méthode préférée. Vous devrez déplacer les appels ajax à l'intérieur du même fichier et en faire un flux d'exécution unique comme n'importe quel programme normal.
-
Si pour une raison quelconque vous ne pouvez pas faire ce qui précède, vous pouvez essayer quelque chose comme ceci :
/path/to/browser http://mysite/mywebpage.php
. Ici, ce que vous faites, vous exécutez un exécutable de navigateur, puis vous appelez l'URL de la page Web. De cette façon, la page est exécutée dans l'environnement du navigateur et elle sera capable d'analyser et de comprendre les appels ajax/js.