2011-04-13 8 views
27

मुझे पता है कि यह थोड़ा अजीब लग सकता है लेकिन मुझे कुछ पैरामीटर को $ _POST सरणी में पास करने की आवश्यकता है। अपाचे के तरीके के समान, या कोई अन्य वेब सर्वर।

दुर्भाग्य से मुझे अपने उबंटू के लिए कहीं भी libapache2-mod-php5 नहीं मिला।

+0

http://superuser.com/q देखना uestions/149329/कैसे-do-i-make-a-post-request-cur-curl और इसे विलय किया जाना चाहिए। – Neal

उत्तर

16

यह आसानी से करने योग्य नहीं है। आप php-cgi द्विआधारी और पाइप एक नकली पोस्ट में अनुरोध आह्वान कर सकते हैं लेकिन आप सीजीआई वातावरण चर की एक पूरी बहुत कुछ स्थापित करने के लिए की आवश्यकता होगी:।

echo 'var1=123&var2=abc' | REQUEST_METHOD=POST SCRIPT_FILENAME=script.php REDIRECT_STATUS=CGI CONTENT_TYPE=application/www-form-urlencoded php-cgi 

नोट: अपर्याप्त, उस तरह काम नहीं करता। लेकिन ऐसा ही कुछ ...


यह निश्चित रूप से आसान है अगर आप सिर्फ स्क्रिप्ट पैच, और यह एक पूर्वनिर्धारित वातावरण चर से $ _POST सरणी लोड करते हैं।

$_POST = parse_url($_SERVER["_POST"]); 

तो फिर तुम यह सादगी के लिए _POST=var=123 php script.php तरह आह्वान कर सकते हैं।

+0

एक उत्तर के लिए धन्यवाद। PHP-Cgi मेरे लिए काम करता है! – hades

+2

वाह, ठंडा। मैं मानता हूं कि मुझे यह अपने लिए काम करने के लिए नहीं मिला: | – mario

+0

यह कर्ल का उपयोग करने से बेहतर कैसे है? – Neal

3

उपयोग कर्ल डेटा
कर्ल --data "नाम = ii" "पोस्ट करने के लिए param1 = मान 1 & param2 2 = मान" http://test.com/sample.php

+1

ओपी कर्ल – anthonygore

+1

के लिए नहीं पूछ रहा है, मुझे इसे कम करने का कोई कारण नहीं दिखता है। ओपी ने कर्ल के लिए नहीं पूछा था, लेकिन वह भी बहुत विशिष्ट नहीं था और यह जवाब निश्चित रूप से काम करता है। यह भी निश्चित रूप से आसान है। Upvoted। – Anthony

+0

कर्ल वेब सर्वर के माध्यम से जाना चाहिए और उसने विशेष रूप से कहा कि वह एक सर्वर का उपयोग नहीं कर रहा था। –

40

मैं इस के लिए एक समाधान के लिए खोज और से आया था, क्योंकि यह था पहले Google पर मारा। The second one किसी भी तरह से मेरे लिए उपयोगी था, क्योंकि आपके पास वास्तव में आसान समाधान है, यदि आपके पास PHP स्क्रिप्ट तक पहुंच है और इसे बदल सकता है।

बस अपनी स्क्रिप्ट की शुरुआत में निम्नलिखित लाइनों सम्मिलित करें:

/* if started from commandline, wrap parameters to $_POST and $_GET */ 
if (!isset($_SERVER["HTTP_HOST"])) { 
    parse_str($argv[1], $_GET); 
    parse_str($argv[1], $_POST); 
} 

कोड का यह छोटा सा टुकड़ा चाल (क्या आप $ _GET या $ _POST उपयोग करना चाहते हैं तय कर सकते हैं करता है या, जैसा कि मैंने की जरूरत । यह, दोनों
अपनी स्क्रिप्ट बदलने के बाद आप अपने आर्ग गुजर कमांडलाइन से यह कॉल कर सकते हैं:

php yourscript.php 'arg1=x&arg2=y' 

मज़ा

+2

यह एक आकर्षण की तरह काम किया। मैं वास्तव में ग्रहण के ज़ेंड के संस्करण का उपयोग कर रहा हूं। मैंने ज़ेंड के दस्तावेज़ों के अनुसार एक डीबग प्रोफ़ाइल बनाई, और PHP स्क्रिप्ट तर्क जोड़े। मैंने अपना कोड PHP स्क्रिप्ट और व्हायोला के शीर्ष पर रखा है! इसने $ argv [] में संग्रहीत तर्कों को _POST सरणी में पार्स किया। बहुत grats !!! – MikeyE

+0

मेरे लिए ऐसा कुछ काम नहीं किया (डब्ल्यू 10 ओएस): $ _GET/$ _ POST arrays के लिए सिंगल कोट्स को डबल कोट्स द्वारा प्रतिस्थापित किया जाना था। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^