2008-10-03 17 views
16

मैं सोच रहा था कि क्या PHP में कच्चे HTTP अनुरोध डेटा को अपाचे पर चलने का कोई तरीका है जिसमें किसी भी अतिरिक्त एक्सटेंशन का उपयोग शामिल नहीं है। मैंने मैनुअल में HTTP फ़ंक्शंस को देखा है, लेकिन मेरे पास मेरे पर्यावरण में एक एक्सटेंशन इंस्टॉल करने का विकल्प नहीं है।PHP/apache के साथ कच्चे HTTP अनुरोध डेटा को मैं कैसे एक्सेस कर सकता हूं?

जबकि मैं $ _SERVER से जानकारी तक पहुंच सकता हूं, मैं कच्चे अनुरोध को बिल्कुल सर्वर के रूप में भेजना चाहता हूं। PHP उदाहरण के लिए, अपनी खुद की सरणी शैली के अनुरूप हेडर नामों को munges। कुछ टेस्ट-हेडर HTTP_X_SOME_TEST_HEADER बन जाता है। यह वही नहीं है जो मुझे चाहिए।

उत्तर

10

क्या आपका मतलब $_SERVER में निहित जानकारी है?

print_r($_SERVER); 

संपादित करें:

इस तो चाहेंगे?

foreach(getallheaders() as $key=>$value) { 
    print $key.': '.$value."<br />"; 
} 
+5

हाँ, पर मैं कच्चे अनुरोध चाहते हैं इससे पहले कि यह द्वारा पीएचपी – Shabbyrobe

+0

नोट $ _SERVER में पार्स हो जाता है: getallheaders() php 5.4 – NickSoft

12

निम्नलिखित php आवरण का उपयोग करें:

$raw_post = file_get_contents("php://input"); 
+7

के बाद fastcgi के साथ काम करता है मुझे नहीं लगता कि यह http शीर्षलेख प्राप्त करता है। – MattSmith

+1

यिप केवल शरीर :) –

2

आज़माएं:

$request = $_SERVER['SERVER_PROTOCOL'] .' '. $_SERVER['REQUEST_METHOD'] .' '. $_SERVER['REQUEST_URI'] . PHP_EOL; 

    foreach (getallheaders() as $key => $value) { 
    $request .= trim($key) .': '. trim($value) . PHP_EOL; 
    } 

    $request .= PHP_EOL . file_get_contents('php://input'); 

    echo $request; 
संबंधित मुद्दे