2009-01-22 15 views
10

में प्राप्त करने का सबसे अच्छा तरीका क्या है, मैं कई आरएसएस फ़ीड लेने की कोशिश कर रहा हूं, और PHP का उपयोग करके उन्हें MySQL डेटाबेस में सामग्री डालता हूं। इस सामग्री को स्टोर करने के बाद, मैं अपने स्वयं के पेज पर प्रदर्शित होगा, और सामग्री को एक ही आरएसएस फ़ीड में जोड़ दूंगा। (शायद फ़िल्टरिंग के बाद)आरएसएस फ़ीड को एक MySQL डेटाबेस

मैंने पहले आरएसएस फ़ीड से निपटाया नहीं है, इसलिए मैं ऐसा करने का सबसे अच्छा फ्रेमवर्क/तरीका सोच रहा हूं। मैंने डीओएम आधारित पार्सिंग के बारे में पढ़ा है, लेकिन सुना है कि इसमें बहुत सारी यादें हैं, कोई सुझाव?

उत्तर

9

Magpie PHP के लिए एक उचित आरएसएस पार्सर है। उपयोग करने के लिए आसान:

require('rss_fetch.inc'); 
$rss = fetch_rss($url); 

उदाहरण के लिए इस तरह एक आइटम:

<item rdf:about="http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257"> 
<title>Weekly Peace Vigil</title> 
<link>http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257</link> 
<description>Wear a white ribbon</description> 
<dc:subject>Peace</dc:subject> 
<ev:startdate>2002-06-01T11:00:00</ev:startdate> 
<ev:location>Northampton, MA</ev:location> 
<ev:enddate>2002-06-01T12:00:00</ev:enddate> 
<ev:type>Protest</ev:type> 
</item> 

इस तरह एक सरणी में बदल जाएगा:

array(
    title => 'Weekly Peace Vigil', 
    link => 'http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257', 
    description => 'Wear a white ribbon', 
    dc => array (
      subject => 'Peace' 
     ), 
    ev => array (
     startdate => '2002-06-01T11:00:00', 
     enddate => '2002-06-01T12:00:00', 
     type => 'Protest', 
     location => 'Northampton, MA' 
    ) 
); 

तो फिर तुम सिर्फ बाहर बिट्स आप चुन सकते हैं डीबी में बचत करना चाहते हैं और दूर जाओ!

+0

मैं अधेला कोशिश की है। मैंने इसे http://chacha102.com/feed/ पर निर्देशित किया, जो स्रोत के साथ देखे जाने पर पूरी पोस्ट दिखाता है, लेकिन मैग्पी का उपयोग केवल मुझे पहले वाक्य के बारे में बताता है। –

+0

ऐसा लगता है कि इसमें कुछ आरएसएस 2.0 फ़ीड्स के साथ समस्याएं हैं :( –

+0

मैंने मुख्य रूप से इसे Google रीडर से एटम फ़ीड पर उपयोग किया है, यह नहीं पता था कि आरएसएस 2.0 –

0

कई Magpie और one in pear सहित वहाँ पुस्तकालयों को पार्स आरएसएस, कर रहे हैं।

मैं एक पार्सर चुनूंगा, और उसके बाद डेटाबेस में इसे खिलाने के लिए डेटा के साथ एक लूप के माध्यम से इसे चलाऊंगा। सुनिश्चित करें कि आप यह समझते हैं कि आप कितनी बार स्क्रिप्ट को चलाने के लिए चाहते हैं, और इस बारे में सोचें कि यह क्रॉन से चल रहा है या किसी पृष्ठ का हिस्सा है जो केवल बार-बार लोड होता है।

7

सर्वश्रेष्ठ PHP पार्सर SimplePie, IMHO है। मैं वर्षों से इसका इस्तेमाल कर रहा हूं। निम्नलिखित को पकड़ने और विश्लेषण करने में यह बहुत अच्छा है: आरएसएस 0.90, आरएसएस 0.91 (नेटस्केप), आरएसएस 0.91 (यूजरलैंड), आरएसएस 0.92, आरएसएस 1.0, आरएसएस 2.0, एटम 0.3, एटम 1.0; निम्नलिखित नामस्थान सहित: डबलिन कोर 1.0, डबलिन कोर 1.1, GeoRSS, आइट्यून्स आरएसएस 1.0 (ज्यादातर पूर्ण), मीडिया RSS 1.1.1, आरएसएस 1.0 सामग्री मॉड्यूल, W3C WGS84 बेसिक भू XML 1.0, XHTML 1.0

SimplePie 1.2 यहां तक ​​कि डेटाबेस कैशिंग भी है, इसलिए इसमें जो कुछ भी आप चाहते हैं उसे करने के लिए आपको वह सब कुछ चाहिए।

और अगर आप कच्चे एक्सएमएल फाइल पार्स करने के लिए की जरूरत है, XMLize

-Trystian

+1

के लिए इसकी कमी थी [मुझे यह पुराना दस्तावेज़] (http://simplepie.org/wiki/faq/how_do_i_do_database_caching) यह घोषणा करते हुए कि डेटाबेस कैशिंग समर्थन संस्करण 1.2 पर आ जाएगा, लेकिन जब मैं MySQL वाक्यविन्यास का उपयोग करता हूं तो वर्तमान संस्करण (1.3.1) अजीब त्रुटियों को वापस कर रहा है। – Pieter

5

का उपयोग कर एक बहुत ही सरल काट दिया एक साथ स्क्रिप्ट है कि बस एंड-टू-एंड काम करता है के लिए (आरएसएस पार्स, डीबी में डालने) की कोशिश ;

http://code.google.com/p/rssingest/

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