Δημιουργήστε ένα RSS Reader στην PHP και Javascript
Πέμπτη, 25 Ιανουαρίου 2007 Δεδομένου ότι βρισκόμαστε σε ένα Blog (Weblog) και με κοινή χρήση αρχείων RSS έχει γίνει ένα πρότυπο, εδώ είναι μερικά αποσπάσματα απλό κωδικό για να χειραγωγήσουν RSS-Feed.
Όλοι γνωρίζουμε ότι τα αρχεία είναι RSS - τέλος - απλό αρχείο κειμένου, το οποίο ανταποκρίνεται στο πρότυπο XML. Επομένως, δεν είναι χειραγώγηση τόσο περίπλοκη.
Η πρώτη κατηγορία που θα εισαχθούν στην PHP, σας επιτρέπει να διαβάσετε ένα αρχείο από οποιοδήποτε RSS διεύθυνση, η οποία σας επιτρέπει να επεξεργάζονται τα αποτελέσματα και επαναλαμβάνονται από κανένα μέρος.
- (τάξη CRSSREADER
- = false ; insideitem $ var = false?
- = "" ; Var $ tag = ""?
- = "" ; var $ τίτλος = ""?
- = "" ; var $ περιγραφή = ""?
- = "" ; var $ link = ""?
- / /
- = "" ; var $ url = ""?
- ; var $ xml_parser?
- / /
- $url ) { CRSSREADER λειτουργία ($ url) (
- = $url ; $ Αυτό -> url = $ url?
- )
- / /
- getUrl λειτουργία () (
- / /
- ; $ Ch = curl_init ()?
- ; // set to zero for no timeout $ Timeout = 5? / / Μηδέν για το χρονικό όριο δεν
- , CURLOPT_URL, $this -> url ) ; curl_setopt ($ ch, CURLOPT_URL, $ αυτό -> url)?
- , CURLOPT_RETURNTRANSFER, 1 ) ; curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1)?
- , CURLOPT_CONNECTTIMEOUT, $timeout ) ; curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, $ timeout)?
- $ch ) ; File_contents = curl_exec $ ($ ch)?
- ) ; curl_close ($ ch)?
- / /
- $file_contents ) ; return ($ file_contents)?
- )
- / /
- $parser , $name , $attrs ) { λειτουργία startElement ($ parser, $ όνομα, attrs $) (
- $this -> insideitem ) { if ($ this -> insideitem) (
- = $name ; $ Αυτό -> tag = $ όνομα?
- ( $name == "ITEM" ) { ) Elseif ($ == όνομα «θέμα») (
- = true ; $ Αυτό -> = insideitem αλήθεια?
- )
- )
- / /
- $parser , $name ) { λειτουργία endElement ($ parser, $ όνομα) (
- $name == "ITEM" ) { εάν ($ == όνομα «θέμα») (
- -> link , "url" => $ this -> σύνδεση,
- -> description ) ; "περιγραφή" => $ this -> περιγραφή)?
- = "" ; $ Αυτό -> τίτλος = ""?
- = "" ; $ Αυτό -> DESCRIPTION = ""?
- = "" ; $ Αυτό -> link = ""?
- = false ; $ Αυτό -> insideitem = false?
- )
- )
- / /
- $parser , $data ) { characterData λειτουργία ($ parser, $ δεδομένων) (
- $this -> insideitem ) { if ($ this -> insideitem) (
- $this -> tag ) { switch ($ αυτό -> tag) (
- : περίπτωση "ΤΙΤΛΟΣ":
- .= $data ; $ Αυτό -> τίτλος .= $ δεδομένα?
- σπάσει?
- : περίπτωση "Περιεχόμενο: κωδικοποιημένα":
- .= $data ; $ Αυτό -> περιγραφή .= $ δεδομένα?
- σπάσει?
- : περίπτωση "σχέση":
- .= $data ; $ Αυτό -> σύνδεση .= $ δεδομένα?
- σπάσει?
- )
- )
- )
- / /
- Λάβετε λειτουργία () (
- / /
- $this -> xml_parser , "startElement" , "endElement" ) ; xml_set_element_handler ($ αυτό -> xml_parser, "startElement", "endElement")?
- $this -> xml_parser , "characterData" ) ; xml_set_character_data_handler ($ αυτό -> xml_parser, "characterData")?
- -> getURL ( ) ; = $ $ Δεδομένα αυτό -> getUrl ()?
- xml_get_error_code ( $this -> xml_parser ) ) , xml_error_string (xml_get_error_code ($ αυτό -> xml_parser))?
- $this -> res ) ; return ($ this -> res)?
- )
- )
Χρησιμοποιήστε αυτή την κατηγορία HTML για να σας ξανά εκροές είναι πραγματικά απλή. Εδώ είναι ένα παράδειγμα της χρήσης του:
- ; require_once "crssreader.php"?
- CRSSREADER ( "http://blog.e-lementi.com/?feed=rss2&cat=1" ) ; $ Rss = νέα CRSSREADER ( "http://blog.e-lementi.com/?feed=rss2&cat=1")?
- / /
- -> get ( ) ; $ R = $ RSS -> Get ()?
- / /
- $i = 0 ; $i <sizeof ( $r ) ; $i ++ ) { για ($ i = 0? $ i <sizeof ($ r)? $ i + +) (
- )
Η κατηγορία είναι αρκετά τις επιδόσεις, αν και πολλά εξαρτώνται από τις ρυθμίσεις της πηγής. Αν προσπαθήσουμε να βγάλουμε την ζωοτροφών από μια τοποθεσία που έχει οριστεί ως ο μέγιστος αριθμός 100 ζωοτροφών, ο χρόνος που απαιτείται για να είναι κάπως «περισσότερο από ένα blog που έχει δημιουργήσει στις ζωοτροφές 5!
Ορισμένοι - όπως FeedBurner - το θέμα των υπηρεσιών που κάνει ακριβώς αυτό που προτείνεται από την PHP παραπάνω κατηγορία, αλλά η χρήση Javascript. Τώρα θα δούμε πώς θα δημιουργήσουμε ένα serivizio ότι - με Javascript - μπορεί να διαβάσει RSS-Feed.
Αυτό που κάνουμε είναι να εκμεταλλευτεί την κατηγορία PHP προτείνεται παραπάνω, χωρίς άσκοπες parsing Javascript! Πώς; Δημιουργούμε μια σελίδα index.php και τοποθετήστε τον ακόλουθο κώδικα:
- ; require_once "crssreader.php"?
- $sIn , $iNumCar = 16 ) { cutString λειτουργία ($ αμαρτία, $ iNumCar = 16) (
- ( stripslashes ( $sIn ) , 0 , $iNumCar ) ; $ Sout = substr (stripslashes ($ αμαρτία), 0, $ iNumCar)?
- $sOut ) ; return ($ sout)?
- )
- [ "url" ] ; $ Url = $ _GET [ "url"]?
- [ "max" ] ; $ Max = $ _GET [ "max"]?
- CRSSREADER ( $url ) ; $ Rss = νέα CRSSREADER ($ url)?
- -> get ( ) ; $ R = $ RSS -> Get ()?
- " ; $ O = "document.write (" <ul> ')? \ N "?
- $i = 0 ; $i <sizeof ( $r ) ; $i ++ ) { για ($ i = 0? $ i <sizeof ($ r)? $ i + +) (
- $i > $max ) break ; if ($ i> $ max) break?
- " . $t . " \" target= \" _blank \" href= \" " . $u . " \" >" .cutString ( $t , 32 ) . "</a></li>'); \n " ; $ O .= "document.write (" <a <li> τίτλος = \ ". $ T." \ "target = \" _blank \ "href = \". $ U. "\"> ". CutString ($ Μ, 32). "</ A> </ li> ')? \ N"?
- )
- ; $ O .= "document.write (" </ sizeof> </ ul >');";
- / /
Ολοκληρώθηκε! Τώρα, αν έχετε βάλει αυτόν τον κωδικό σας Web (miodominio.com για παράδειγμα), στο πλαίσιο του RssReader φάκελο, μπορείτε να ρίξετε υπηρεσία σας web2.0. Στην πράξη, ένα προσομοιωμένο Javascript ΧΩΡΙΣ πράγματι δημιουργεί. Για παράδειγμα, χρησιμοποιώντας την ακόλουθη δέσμη ενεργειών μπορεί να επιτύχει την έξοδο της τροφοδότησης RSS μέσω ενός ψευδο-PHP Javascript. Από τη σελίδα απευθύνεται στο σημείο όπου θα φτάσουμε feeds του καταλόγου μας, απλά τοποθετήστε:
Όπως μπορείτε να δείτε σιγουρεύτηκα για να περάσει το url της τροφής και σε αξία (το πολύ) του ψευδοκράτους GET αίτηση Javascript - που δεν υπάρχει! Δυνατός!

















undolog »Blog Archive» Dynamic JavaScript & CSS αρχείου δήλωσε:
[...] Δυναμική JavaScript & CSS αρχείου Tags: ASP, ColdFusion, CSS, HTML, HTTP, Internet, JavaScript, JSP, PHP, server scripting, την ανάπτυξη, web server, web2.0Nel Post Δημιουργήστε ένα RSS Reader στην PHP και Javascript έμμεσα, συναντήσαμε μια πολύ ενδιαφέρουσα τεχνική που χρησιμοποιήθηκε για τη δημιουργία - στην πράξη - ένα από τα αρχεία Javascript PHP. [...]
χάπι δήλωσε:
Έψαχνα πληροφορίες για αυτό και έχει συμβεί εδώ, η θέση είναι παλιό αλλά πιστεύω ότι εξακολουθεί να ισχύει, είναι αρκετά άπειροι σε αυτόν τον τομέα, αυτό που θα ήθελα να ρωτήσω είναι αν αυτή η μέθοδος μπορεί να χρησιμοποιηθεί για οποιοδήποτε δικτυακό τόπο, αν φόρουμ βιβλίο επισκεπτών του ιστολογίου, με λίγα λόγια, κάθε ιστοσελίδα.
ή μπορείτε να εξυπηρετήσει το ειδικό καθεστώς;
ευχαριστώ
Giovambattista Fazioli δήλωσε:
@ Από στόματος αντισυλληπτικό χάπι: το μόνο ενέργειες που πρέπει να ακολουθήσουμε είναι η παρουσία σας Web Server PHP. Κατά τα άλλα δεν υπάρχουν ειδικοί περιορισμοί. Όπως ο κωδικός είναι παλιό. Αν μπορείτε να βοηθήσετε PHP βιβλιοθήκες είναι σίγουρα το καλύτερο και στο καλύτερο parse XML πρόσφατες εκδόσεις της PHP. Ακόμα και έτσι όμως μπορεί να είναι ένας κώδικας "της" να είστε βέβαιοι ότι τα έργα για κάθε διακομιστή που έχει εγκαταστήσει τουλάχιστον PHP 4.1
χάπι δήλωσε:
Ω παρακαλώ! δοκιμάστε τα άλλα πράγματα που είπατε τελευταία, αλλά υποψιάζομαι ότι είναι πιο πρόσφατη και είναι πιο δύσκολο! CMQ δοκιμάσετε, σας ευχαριστώ πολύ για την απάντησή σας.