2012-11-02 14 views
5

मुझे लगता है कि इन कार्यों को अनावश्यक लगता है। http_build_query() मानक PHP कार्यों से संबंधित है। http_build_str() pecl_http पैकेज का हिस्सा है।http_build_str() और http_build_query() के बीच क्या अंतर है?

क्या वे 100% अनावश्यक हैं?

मैं parse_str() का सही रिवर्स फ़ंक्शन प्राप्त करने पर केंद्रित हूं। चूंकि http_build query() टूटा हुआ है। (reference देखें) मुझे आश्चर्य है कि http_build_str() का कोई तरीका है कि अधिक किनारे के मामलों का समर्थन/सहन करने के लिए कोई फायदा हो सकता है।

+5

आप एपीआई क्यों नहीं पढ़ते? – thatidiotguy

+1

क्योंकि PHP_ में build_query पेश किया गया था। पीईएलएल संस्करण स्थापित होने का कोई कारण नहीं है जब तक कि आप PHP के पुराने संस्करण पर न हों, और/या php5 codebase को php5 इंस्टॉल में फेंकने का प्रयास कर रहे हैं। –

+0

धन्यवाद @MarcB, आप पहले मूल्यवान इनपुट लाते हैं ;-) मैंने अपने प्रश्न को और अधिक विशिष्ट –

उत्तर

6

एपीआई पढ़कर, ऐसा लगता है कि http_build_str() यूआरएल पैरामीटर को एन्कोड नहीं करता है, जबकि http_build_query() करता है।

http_build_str() या तो ऑब्जेक्ट या ऑब्जेक्ट को इसके प्राथमिक तर्क के रूप में ले सकता है, जबकि http_build_query() केवल एक सरणी लेता है।

+0

क्षमा करें मैं बहुत अस्पष्ट था और अधिक जानकारी के साथ अपना प्रश्न अपडेट किया। –

+0

@lenzai जिस तरह से PHP विकसित हुआ, यह उन कार्यों के साथ झुका हुआ है जिनके पास डुप्लिकेट उद्देश्य है। प्रमुख संशोधन करना और सामान को पीछे से संगत छोड़ना मुश्किल था, इसलिए भाषा पुराने एक्सटेंशन के संदर्भों से भरी हुई है, जो वास्तव में अब आवश्यक नहीं हैं यदि आप मूल भाषा के अद्यतन संस्करणों का उपयोग करते हैं। – thatidiotguy

+0

2 ऐतिहासिक कारणों के लिए इसी उद्देश्य के लिए डुप्लिकेट फ़ंक्शंस परेशान है लेकिन सेंस बनाता है। फिर भी उनमें से कोई भी parse_str का सही रिवर्स नहीं है :( –

2

कुछ हद तक रिडंडेंट। लेकिन, यदि आप पीएचपी दस्तावेज़ को देखें, तो आप अलग मतभेद देखने के लिए चाहिए:

http://php.net/manual/en/function.http-build-query.php

http://php.net/manual/en/function.http-build-str.php

बहुत कम में, आप उस http_build_query देखने के लिए() चाहिए कोर PHP है और एक का समर्थन करता है अतिरिक्त एन्कोडिंग शैली पैरामीटर। और आपको यह देखना चाहिए कि http_build_str() एक पीईसीएल एक्सटेंशन है।

+0

हां, मुझे वह दिखाई देता है। लेकिन 2 फ़ंक्शन होने का क्या मतलब है। "इसके अलावा" parse_str' (एक अंतर्निहित PHP फ़ंक्शन) का आधिकारिक रिवर्स 'http_build_query' नहीं है (दूसरा बिल्टिन php फ़ंक्शन) लेकिन 'http_build_str' (एक बाहरी पीईसीएल एक्सटेंशन)। क्या यह भ्रमित नहीं है? उस की भावना कैसे बनाएं और बुद्धिमानी से 2? –

+1

संख्या के बीच चुना गया है [parse_string] (http://www.php.net /manual/en/function.parse-str.php) दस्तावेज http_build_query() को संदर्भित करता है/लिंक नहीं करता है, चोटी का विस्तार नहीं! तो, यदि कोई "आधिकारिक" उलटा है, तो यह pecl फ़ंक्शन नहीं है। और जैसा ऊपर बताया गया है , pecl संस्करण निस्संदेह सिर्फ http_build_query() को मूल PHP में एकीकृत किया गया था। – svidgen

+0

आप सही हैं। मुझे इस तथ्य से भ्रमित हो गया है कि 'http_build_Str()' 'parse_str()' के विपरीत होने का दावा करता है जबकि 'http_build_query () 'नहीं है। –

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