2013-08-03 15 views
6

प्रदर्शित करने के लिए apache_request_headers alternatve है I वर्तमान में एक ऑनलाइन MMO के लिए एक आईजीबी (इन-गेम-ब्राउज़र) में एक ऐप विकसित कर रहा हूं। तीसरे पक्ष के विकास के लिए ब्राउज़र एचटीएमएल हेडर को गेम जानकारी जैसे स्थान, आइटम आईडी, आइटम टाइप आईडी आदि के साथ भेजता है।क्या HTTP शीर्षलेख

यह एक छोटी सी लिपि है जिसका मैं अभ्यास करने के लिए उपयोग कर रहा हूं। यह स्क्रिप्ट मेरे स्थानीय सर्वर पर काम करती है और इस समस्या पर पोस्ट की गई सभी अन्य लोगों की तरह यह मेरे वेब सर्वर पर काम नहीं करती है। मैं इस निष्कर्ष पर आया हूं कि यह अपाचे के कारण मॉड्यूल के रूप में स्थापित नहीं किया जा रहा है। मैंने अपने होस्टिंग प्रदाता से बात की। उन्होंने कहा कि वे मुझे "apache_request_headers" के विकल्प खोजने की आवश्यकता के अलावा मुझे कुछ भी नहीं बता सकते थे। मैंने इस साइट पर इस विषय पर पहले से पोस्ट किए गए सभी मुद्दों को देखा है और मैं यह देखने में असमर्थ हूं कि यह सब एक साथ कैसे फिट बैठता है। मेरे अंतिम परिणाम को पूरा करने के लिए यहां उदाहरणों का उपयोग कैसे करें। इस तरह [प्रश्न]: Call to undefined function apache_request_headers()

मेरे कोड:

<?php 
$headers = apache_request_headers(); 

foreach ($headers as $header => $value) { 
    echo "$header: $value <br />\n"; 
} 
?> 

मेरे त्रुटि:

Fatal error: Call to undefined function apache_request_headers() in /home/ncgotggb/public_html/ezalternatives.com/index.php on line 2 

के रूप में मैं इस साल जाना है और इसे स्वयं सिखाया गया है और की तेज़ गति से मैं सीख गया है तो मैं अभी भी इन अवधारणाओं के बहुत से नए हैं। इस बिंदु पर मेरे पास कोई विकल्प नहीं है, मैं बहुत प्रतिबद्ध हूं और इसे पूरा करने की आवश्यकता है। अपना जवाब प्रदर्शित करते समय यदि आप अपना समाधान पूर्ण रूप में दिखाते हैं तो इसकी बहुत सराहना की जाएगी।

+0

http://stackoverflow.com/a/27957883/919216 –

उत्तर

8

यह अपने स्थानीय सर्वर की तरह लगता है अपाचे चल रहा है और के रूप में इस समारोह केवल (अपाचे के साथ काम करता है जब तक कि सर्वर PHP 5.4.0 चल रहा है, तो यह भी FastCGI तहत काम करता है अपने दूरस्थ सर्वर, नहीं है।

पर इस फ़ंक्शन के लिए PHP मैनुअल पेज, टिप्पणीकर्ताओं में से एक ने एक प्रतिस्थापन फ़ंक्शन शामिल किया है जिसे केवल तभी घोषित किया जाएगा जब अंतर्निहित कोई अस्तित्व में न हो। मैंने इसका परीक्षण नहीं किया है, लेकिन मैंने उसी फ़ंक्शन को कहीं और पोस्ट किया है।

if(!function_exists('apache_request_headers')) { 
    function apache_request_headers() { 
     $arh = array(); 
     $rx_http = '/\AHTTP_/'; 

     foreach($_SERVER as $key => $val) { 
      if(preg_match($rx_http, $key)) { 
       $arh_key = preg_replace($rx_http, '', $key); 
       $rx_matches = array(); 
      // do some nasty string manipulations to restore the original letter case 
      // this should work in most cases 
       $rx_matches = explode('_', $arh_key); 

       if(count($rx_matches) > 0 and strlen($arh_key) > 2) { 
        foreach($rx_matches as $ak_key => $ak_val) { 
         $rx_matches[$ak_key] = ucfirst($ak_val); 
        } 

        $arh_key = implode('-', $rx_matches); 
       } 

       $arh[$arh_key] = $val; 
      } 
     } 

     return($arh); 
    } 
} 
0

मैंने पाया कि आईएसपी कॉन्फ़िग में अपनी साइट पीएचपी के रूप में 'फास्ट सीजीआई' के लिए स्थापित किया गया था - अच्छी तरह से 'एमओडी-पीएचपी' तय बातों को यह बदल रहा है ।

+1

ध्यान दें कि [apache_request_headers()] (http://php.net/manual/en/function.apache-request-headers.php) नीचे उपलब्ध है PHP 5.4.0 के बाद से FastCGI – Benjamin

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