मैं HTML DomObject के उपयोग से वेबपृष्ठों को पार्स करने का प्रयास कर रहा हूं ताकि उन्हें एसईओ गुणवत्ता के लिए स्कैन करने के लिए एप्लिकेशन का उपयोग किया जा सके।PHP डोम डॉक्यूमेंट को अपने एचटीएमएल स्ट्रिंग को "फिक्सिंग" से कैसे रोकें
हालांकि मैंने किसी समस्या के बावजूद भाग लिया है। परीक्षण प्रयोजनों के लिए मैं एक छोटे से html पृष्ठ लिखा है निम्नलिखित गलत एचटीएमएल युक्त
<head>
<meta name="description" content="randomdesciption">
</head>
<title>sometitle</title>
आप देख सकते हैं शीर्षक हेड टैग जो बाहर त्रुटि मैं पता लगाने के लिए कोशिश कर रहा हूँ है।
अब समस्या आती है, जब मैं इस पृष्ठ से responce स्ट्रिंग को पकड़ने के लिए कर्ल का उपयोग करता हूं तो इसे HTML दस्तावेज़ के रूप में लोड करने के लिए इसे डोम दस्तावेज़ पर भेजता हूं, यह वास्तव में शीर्षक के चारों ओर एक और टैग जोड़कर इसे ठीक करता है।
<head>
<meta name="description" content="randomdesciption">
</head>
<head><title>sometitle</title></head>
मैं कर्ल प्रतिक्रिया डेटा की जाँच कर ली और कहा कि वास्तव में समस्या, loadHTML के निष्पादन() विधि एचटीएमएल वाक्य रचना को ठीक करता दौरान किसी भी तरह php DOMDocument नहीं है।
मैंने डोमडॉक्यूमेंट रिकवरी, विकल्प एंटीटीज और वैधताऑनपर्स विशेषताओं को बिना किसी सफलता के झूठी सेट करके बंद करने का प्रयास किया है।
मैं Google खोज रहा हूं लेकिन मैं अब तक कोई जवाब नहीं ढूंढ पा रहा हूं। मुझे लगता है कि यह किसी ऐसे व्यक्ति के लिए दुर्लभ है जो वास्तव में टूटा हुआ HTML नहीं तय करना चाहता है।
कोई भी जानता है कि डोमडॉक्यूमेंट को मेरे टूटी हुई एचटीएमएल को ठीक करने से कैसे रोकें?
अग्रिम धन्यवाद
मेरी मशीन पर दे देंगे आप इसे पार करने से पहले [साफ] (http://php.net/tidy) के माध्यम से अपने मार्कअप चल माना जाता है डोम के लिए, या यहां तक कि डोम के बदले में? मार्कअप त्रुटियों का पता लगाने के लिए यह एक उपयोगी विस्तार है। – TML
नोट: यह व्यवहार वास्तव में HTML में निर्दिष्ट है: '
'का एक वैकल्पिक उद्घाटन और समापन टैग है और यह केवल'