2011-03-06 17 views
14

के साथ एक्सएमएल के लिए PHP हेडर मैं हेडर() फ़ंक्शन को XML मानक में बदलने के लिए फ़ंक्शन का उपयोग कर रहा हूं। समस्या तब होती है जब मैं <?php header("Content-type: text/xml; charset=utf-8") का उपयोग करता हूं; ?> यह सिर्फ <?xml version="1.0"?> प्रस्तुत करता है, बिना enconding/charset के। क्या मैं इसे गलत तरीके से उपयोग कर रहा हूं?यूटीएफ -8

उत्तर

13

header() समारोह सिर्फ HTTP हेडर संशोधित करता है। कोड आप सेट तैनात एक Content-Type हैडर, जो महत्वपूर्ण है किस प्रकार की फ़ाइल आप की सेवा कर रहे ब्राउज़र और अन्य ग्राहकों बताने के लिए।

<?xml version="1.0"?> लाइन आप के बारे में बात कर रहे हैं दस्तावेज़ का ही एक हिस्सा है, और नहीं HTTP हेडर से प्रभावित है।

आपके टैग तुम कहते हो अपने एक्सएमएल दस्तावेज को बनाने के लिए डीओएम का उपयोग कर रहे हैं। अगर आप अपने डोमडोक्यूशन कन्स्ट्रक्टर को कर्सेट पास करने के लिए बदलते हैं,

$doc = new DomDocument('1.0', 'UTF-8'); 

यह XML दस्तावेज़ में उस वर्णमाला को आउटपुट करना चाहिए।

+0

दोनों धन्यवाद। मैं इसके लिए खोज करने के लिए आलसी था। मैंने ऐसा कुछ सोचा है, लेकिन मैं भी सोचने के लिए बहुत आलसी था। : ओ) – tenshimsm

2

header परिणाम में केवल एक HTTP शीर्षलेख सेट करता है। PHP मूल्य के साथ कुछ और नहीं करता है, इसलिए यह सुनिश्चित करने के लिए आप पर निर्भर है कि इसका उपयोग ठीक से किया जा रहा है।

यदि आप अपने एक्सएमएल (प्रस्तावना सहित) उत्पन्न करने के लिए एक्सएमएल लाइब्रेरी का उपयोग कर रहे हैं, तो उस लाइब्रेरी के लिए दस्तावेज़ देखें। यदि आप एक्सएमएल "हाथ से" outputting रहे हैं (ओ, तुम अपने आप को प्रस्तावना करने के लिए आवश्यक गुण जोड़ने की जरूरत है।

+0

धन्यवाद। मैं इसके लिए खोज करने के लिए आलसी था। मैंने ऐसा कुछ सोचा है, लेकिन मैं भी सोचने के लिए बहुत आलसी था। : ओ) – tenshimsm

0

तुम भी उपयोग कर सकते हैं

<?php echo '<?xml version"1.0" encoding="UTF-8"?>'; ?> 
+0

कृपया बताएं कि यह क्यों काम करता है। –

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