2011-09-28 13 views
5

के साथ अच्छा नहीं खेल रही है मैं एक MySQL डेटाबेस में संग्रहीत मानों के आधार पर आउटपुट कस्टम एक्सएमएल आउटपुट करने के लिए PHP का उपयोग कर रहा हूं। मैं शर्त के शुरू में निम्नलिखित है:एक्सएमएल घोषणा PHP

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

(मैं भी इस बदलाव की कोशिश की है:।

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

कोई लाभ नहीं हुआ)

बहरहाल, यह हमेशा outputted है (हर ब्राउज़र में और यहां तक ​​कि जब के रूप में wget से डाउनलोड की गई फ़ाइल के रूप में देखा):

<?xml version=1.0 encoding=UTF-8 ?> 

लाइन के साथ कहीं, संस्करण संख्या और एन्कोडिंग के आसपास एकल उद्धरण गिरा दिया गया। मैं गलत कहां गया और इसे ठीक करने के लिए मैं क्या कर सकता हूं? मुझे अपने पार्सर से त्रुटियां मिल रही हैं और मुझे विश्वास है कि ऐसा इसलिए है क्योंकि यह घोषणा इन मानों के चारों ओर एकल या दोहरे उद्धरण रखने के एक्सएमएल मानक का पालन नहीं कर रही है।

+1

यह वास्तव में अजीब है कि PHP उद्धरण छोड़ देगी है, लेकिन फिर भी आप दोहरे उद्धरण चिह्नों एक्सएमएल दस्तावेज़ों के लिए एकल उद्धरण की isntead उपयोग करना चाहिए। – regality

+0

एचएमएचएच। फिर भी वही परिणाम लेकिन मुझे लगता है कि आप डबल कोट्स का उपयोग करने में सही हैं। – esqew

+0

मुझे कुछ आउटपुट पोस्ट-प्रोसेसिंग की तरह लगता है। मुझे इसके साथ कोई अनुभव नहीं है, लेकिन शायद आपकी 'ini' सेटिंग्स में' tidy.clean_output = On' जैसा कुछ है? ऐसा लगता है कि 'टिडी' उन्हें जोड़ने के क्रम में उद्धरण हटा देगा, लेकिन कौन जानता है। शायद कुछ समान पोस्ट-प्रोसेसिंग टूल आपके सर्वर के सेटअप पर कॉन्फ़िगर किया गया है। (यह अपने वेबसर्वर द्वारा किए गए पोस्ट-प्रोसेसिंग के PHP पोस्ट प्रोसेसिंग हो)। –

उत्तर

1

मुझे लगता है कि ऐसा इसलिए है क्योंकि आपके दस्तावेज़ का सामग्री प्रकार पहले ही टेक्स्ट/एचटीएमएल (PHP द्वारा डिफ़ॉल्ट रूप से) पर सेट है।

इसका समाधान इसे प्रतिबिंबित करने के बजाय इसे शीर्षलेख के रूप में सेट करना है।

जैसे:

header ("Content-Type:text/xml"); 

चारसेट स्थापित करने के लिए:

header('Content-Type: text/xml; charset=utf-8'); 

और सुनिश्चित करें कि आप आप निर्गम (गूंज) कुछ और करने से पहले इस सेट है कि सुनिश्चित करें।

आशा में मदद करता है :)

+1

वह पूरी तरह उद्धरणों को स्वचालित हटाने की व्याख्या नहीं करेगा। – Evert

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