वेब प्रोग्राम विकास के लिए मुख्य भाषा के रूप में, php का व्यापक रूप से उपयोग किया जाता है। एक सांख्यिकीय सॉफ्टवेयर के रूप में, आर के पास गणितीय एल्गोरिदम के कार्यान्वयन में अच्छी संचालन क्षमता है। हाल ही में, काम की जरूरतों के कारण, मुझे कुछ वेब एप्लिकेशन डेटा पर जटिल गणितीय गणनाएं करनी पड़ीं, हालांकि PHP स्वयं कुछ गणितीय एल्गोरिदम लिख सकता है, लेकिन कोड की दर्जनों पंक्तियों की दक्षता को पूरा करना अभी भी मुश्किल है आर में एक फ़ंक्शन की तुलना में, शोध के बाद, PHP की त्वरित पहुंच में गणना संचालन के लिए आर को कॉल करना और सीधे गणना परिणामों को पढ़ना और उन्हें वेब पेज पर प्रदर्शित करना संभव हो गया। सामान्य विचार इस प्रकार है:
मुख्य बिंदु यह है कि PHP R प्रोग्राम को चलाने के लिए सक्रिय करता है, गणना मापदंडों को R तक भेजता है, और परिणाम प्राप्त करता है।
PHP में R को सक्रिय करने के लिए, आप अंतर्निहित फ़ंक्शन exec का उपयोग कर सकते हैं, ताकि ऑपरेटिंग सिस्टम रनिंग विंडो में निष्पादित किसी भी कमांड को यहां निष्पादित किया जा सके। R द्वारा निष्पादित कमांड है (निम्नलिखित विंडोज़ वातावरण को संदर्भित करता है)।
"D:\\Program Files\R\R-2.15.2\bin\x64\R.exe" --vanilla < D:\\test.R out.txt
पहला भाग स्थानीय आर प्रोग्राम का पथ है, इसके बाद आर सॉफ्टवेयर का विकल्प है, जिसे अनुकूलित किया जा सकता है, इसके बाद आर प्रोग्राम फ़ाइल को निष्पादित किया जाना है, जो कि मुख्य बिंदु है, और अंत में आउटपुट फ़ाइल को निष्पादित किया जाता है। यह फ़ाइल कमांड के लिए आवश्यक है, लेकिन यह हमारे लिए किसी काम की नहीं है।
PHP पृष्ठ पर प्रत्येक विज़िट को साकार करने के लिए, अलग-अलग मापदंडों के कारण अलग-अलग R प्रोग्राम निष्पादित किए जाते हैं, इसलिए, यह सुनिश्चित करने के लिए कि प्रत्येक विज़िट के लिए एक अद्वितीय R प्रोग्राम फ़ाइल है, test.R का प्रोग्राम फ़ाइल नाम जेनरेट करना होगा। पैरामीटर नाम और पैरामीटर मान संग्रहीत करने के लिए टेक्स्ट फ़ाइल लिखने के फ़ॉर्म का उपयोग करें, परिणाम फ़ाइल नाम निर्दिष्ट करें, और PHP पृष्ठ में आर फ़ाइल की सक्रियता निर्दिष्ट करें, आप कॉल करने वाली आर प्रोग्राम फ़ाइल निर्दिष्ट कर सकते हैं एक जटिल निश्चित फ़ाइल नाम चलाने के बाद, एक अद्वितीय परिणाम टेक्स्ट फ़ाइल, php फ़ाइल फिर टेक्स्ट फ़ाइल के परिणाम को पढ़ती है, इसे संसाधित करती है और इसे प्रदर्शित करती है, अर्थात उद्देश्य प्राप्त हो जाता है।
exec($command,$out1,$out2);
PHP आउटपुट परिणाम में, जब तक $out2 का मान 0 है, निष्पादन सफल है।
यह ध्यान दिया जाना चाहिए कि फ़ाइल पथ में उपयोग किया जाने वाला बैकस्लैश PHP में बैकस्लैश के लिए एक विशेष एस्केप प्रतीक है, $कमांड उत्पन्न करते समय, आपको इस बात पर विशेष ध्यान देने की आवश्यकता है कि आउटपुट स्ट्रिंग आवश्यकताओं को पूरा करती है या नहीं। इसके अलावा, फ़ाइल भंडारण के लिए, निरपेक्ष पथों का उपयोग करने का प्रयास करें।