Има някои неща, които трябва да разберете в това отношение.
Първото е, че PHP може да се изпълнява като web server module
или като standalone executable
. Когато го стартирате като модул за уеб сървър, го отваряте от браузъра, всички свързани уеб технологии (html/css/js)
и т.н. се анализират и работят в унисон.
Когато го стартирате от командния ред с помощта на cron, като например /usr/bin/php mywebpage.php
тогава изпълнимият файл на php НЕ анализира/разбира другите уеб технологии и така страницата ви ще се провали.
Има две решения за това:
-
Пренапишете само онези части, които поддържат уеб, така че нещата ajax/js да се обработват от PHP. Основното правило е, че ако изпълнявате CLI php скрипт, той трябва да съдържа САМО основния PHP. Това е предпочитаният начин. Ще трябва да преместите ajax извикванията вътре в същия файл и просто да го направите единичен поток на изпълнение като всяка обикновена програма.
-
Ако по някаква причина не можете да направите горното, можете да опитате нещо подобно:
/path/to/browser http://mysite/mywebpage.php
. Това, което правите, е, че изпълнявате изпълним файл на браузъра и след това извиквате URL адреса на уеб страницата. По този начин страницата се изпълнява в средата на браузъра и тя ще може да анализира и разбира извикванията на ajax/js.