इस संबंध में कुछ चीजें हैं जिन्हें आपको समझने की जरूरत है।
पहला यह है कि PHP को web server module
के रूप में चलाया जा सकता है या एक standalone executable
. के रूप में . जब आप इसे वेब सर्वर मॉड्यूल के रूप में चलाते हैं, तो आप इसे ब्राउज़र, सभी संबंधित वेब तकनीकों (html/css/js)
से खोलते हैं। आदि का विश्लेषण करें और एक साथ काम करें।
जब आप क्रॉन का उपयोग करके कमांड लाइन से इसे चलाते हैं जैसे /usr/bin/php mywebpage.php
तो PHP निष्पादन योग्य अन्य वेब तकनीकों को पार्स/समझ नहीं पाता है और इसलिए आपका पृष्ठ विफल हो जाएगा।
इसके लिए दो समाधान हैं:
-
केवल उन वेब-सक्षम भागों को फिर से लिखें ताकि AJAX/js सामग्री PHP द्वारा संभाली जा सके। मूल रूप से अंगूठे का नियम यह है कि यदि आप एक सीएलआई PHP स्क्रिप्ट चला रहे हैं, तो इसमें केवल मूल PHP होना चाहिए। यह पसंदीदा तरीका है। आपको अजाक्स कॉल्स को उसी फाइल के अंदर ले जाना होगा और इसे किसी भी नियमित कार्यक्रम की तरह एक ही निष्पादन प्रवाह बनाना होगा।
-
यदि किसी कारण से आप उपरोक्त कार्य नहीं कर सकते हैं, तो आप कुछ इस तरह की कोशिश कर सकते हैं:
/path/to/browser http://mysite/mywebpage.php
. यहां आप क्या कर रहे हैं, आप एक ब्राउज़र निष्पादन योग्य चला रहे हैं और फिर वेबपेज यूआरएल को कॉल कर रहे हैं। इस तरह पृष्ठ को ब्राउज़र के वातावरण में निष्पादित किया जा रहा है और यह अजाक्स/जेएस कॉल को पार्स और समझने में सक्षम होगा।