Có một số điều bạn cần hiểu về vấn đề này.
Đầu tiên là PHP có thể được chạy dưới dạng web server module
hoặc dưới dạng standalone executable
. Khi bạn chạy nó dưới dạng mô-đun máy chủ web, bạn mở nó từ trình duyệt, tất cả các công nghệ web liên quan (html/css/js)
vv được phân tích cú pháp và hoạt động đồng thời.
Khi bạn chạy nó từ dòng lệnh bằng cron như nói /usr/bin/php mywebpage.php
thì tệp thực thi php KHÔNG phân tích cú pháp / hiểu các công nghệ web khác và do đó trang của bạn sẽ bị lỗi.
Có hai cách giải quyết cho điều này:
-
Chỉ viết lại những phần hỗ trợ web đó để PHP xử lý nội dung ajax / js. Về cơ bản quy tắc ngón tay cái là nếu bạn đang chạy một tập lệnh php CLI, thì nó chỉ nên chứa PHP lõi. Đây là cách được ưu tiên. Bạn sẽ cần phải di chuyển các lệnh gọi ajax vào bên trong cùng một tệp và chỉ cần đặt nó thành một luồng thực thi duy nhất giống như bất kỳ chương trình thông thường nào.
-
Nếu vì lý do nào đó mà bạn không thể làm như trên, bạn có thể thử một cái gì đó như sau:
/path/to/browser http://mysite/mywebpage.php
. Đây là những gì bạn đang làm, bạn đang chạy một tệp thực thi của trình duyệt và sau đó gọi URL của trang web. Bằng cách này, trang đang được thực thi trong môi trường của trình duyệt và nó sẽ có thể phân tích cú pháp và hiểu các lệnh gọi ajax / js.