php - Call to a member function getElementsByTagName() on a non-object, why? -
मैंने यह कोड लिखा है:
फ़ंक्शन GetIds ($ फोरम_आईडी, $ from_page, $ to_page ) {$ Ids = array (); $ Dom = नया DOMDocument (); libxml_use_internal_errors (सही); ($ I = $ से_पृष्ठ; $ i & lt; = $ to_page; $ i ++) {$ dom- & gt; लोड HTML फ़ाइल ('http://www.example.com/forumdisplay.php?page='.$i।' & amp;। च = '$ forum_id); // $ xpath = नया DOMXPath ($ dom); // $ आइटम = $ xpath- & gt; क्वेरी ('// ul [@ id = "थ्रेड"] / li [@id]'); $ आइटम = $ dom- & gt; getElementById ('थ्रेड') - & gt; getElementsByTagName ('ली'); विदेशी मुद्रा ($ धागे के रूप में $ आइटम) {यदि (($ id = substr ($ धागा- & gt; मिलेट विशेषता ('आईडी'), 7))! == गलत) $ आईडी [] = $ id; }} $ आईडी लौटें; }
इस फ़ोरम से सभी थ्रेड आईडी प्राप्त करने के लिए, उपयोग के उदाहरण:
$ tids = getIds ("67", 1,2); // पृष्ठ 1 से 2 तक सभी आईडी प्राप्त करें। विदेशी मुद्रा ($ डेटा के रूप में $ की गई) {$ file = fopen ("threads.txt", "a +"); फ़िलिट ($ फ़ाइल, "{$ data}:"); fclose ($ फ़ाइल); }
जब मैं कोड चलाऊँ तो मुझे यह त्रुटि मिलती है: C: \ wamp \ www \ eProject \ फ़ंक्शंस में किसी गैर ऑब्जेक्ट पर एक सदस्य फ़ंक्शन getElementsByTagName () को कॉल करें। पंक्ति 145 पर PHP
रेखा 145:
$ items = $ dom- & gt; getElementById ('थ्रेड') - & gt; getElementsByTagName ('ली' );
समस्या क्या है?
एक सीधे पुल यूआरएल सीधे वांछित सामग्री (एच / टी रॉयलबग) वापस नहीं कर रहा है यह आपके कोड के साथ एक मुद्दा नहीं है - यह जो अनुरोध करता है, उसके बारे में कुछ भी गलत नहीं है और वांछित सामग्री को ठीक से संसाधित करना चाहिए था कि सामग्री वापस लौटाई गई थी
ऐसा प्रतीत होता है कि जिस वेब साइट को आप स्क्रैप करने की कोशिश कर रहे हैं, वह अब पृष्ठों को उन तक पहुंचने की अनुमति नहीं देता है जिससे आपकी स्क्रिप्ट उन तक पहुंचने का प्रयास कर रही है। साइट अब ब्राउज़र को एक स्क्रिप्ट फ़ीड करती है (जिनमें से कुछ को अस्पष्ट कर दिया गया है) जो जाहिरा तौर पर सामग्री लोड हो रहा है।
समाधान स्क्रीप्टिंग से निपटने के लिए अतिरिक्त कोड लिखना है और आपको वांछित सामग्री भेजने के लिए सर्वर से सही तरीके से पूछें। मेरी आंत वृत्ति यह है कि परिवर्तन के लिए एक उद्देश्य उनकी साइट को स्क्रैप होने से रोकने की संभावना है। यदि हां, तो यह स्क्रिप्ट ब्रेक होने पर एक ऐसी स्थिति हो सकती है जो लगातार बाहर से बाहर निकलती है।
Comments
Post a Comment