rone Δημοσ. 21 Απριλίου 2014 Δημοσ. 21 Απριλίου 2014 καλησπέρα παιδιά! παρσάρω ένα rss με php χρησιμοποιώντας τη συναρτηση file_get_contents. Παραθέτω ένα δείγμα του για να γίνω πιο συγκεκριμένος. <channel> <item> <title>This is the title</title> <description> <![CDATA[Some text <p> <div align="center"> <iframe width="780" height="470" src="'http://123.gr///www.youtube.com/embed/WDK5BTuFMRM?rel=0&vq=hd1080" frameborder="0" allowfullscreen></iframe> </div> ]]> </description> </item> <item> <title>This is the title</title> <description> <![CDATA[Some text <p> <div align="center"> <iframe width="780" height="470" src="'http://www.youtube.com/embed/WDK5BTuFMRM?rel=0&vq=hd1080" frameborder="0" allowfullscreen></iframe> </div> ]]> </description> </item> </channel> το πρόβλημά μου είναι ότι το πρώτο iframe δεν εμφανίζει το βίντεο,ενώ το δεύτερο το εμφανίζει κανονικά.Πρέπει να διαγραφεί απ'τη γραμμή :<iframe width="780" height="470" src="'http://123.gr///www.youtube.com/embed/WDK5BTuFMRM?rel=0&vq=hd1080" frameborder="0" allowfullscreen></iframe> , το 123.gr/// Αρχίκα βρήκα τη συνάρτηση explode , αλλά πιστεύω ότι θα είναι πιο εύκολο με τη συναρτηση preg_match. Παραθέτω τον κώδικα μου , όπου έχω κάνει μια προσπάθεια να ' διώξω ' το 123.gr/// , αλλα τζίφος. <?php $html = ""; $url = "http://123.gr/index.php?format=feed&type=rss"; $xml = file_get_contents($url); $pattern = '~<iframe.*(?P<link>www\.youtube\.com.*?)></iframe>~'; preg_match_all( $pattern, $xml, $matches); var_dump($matches[0]); for ( $i = 0; $i < 10; $i++ ){ $title = $xml->channel->item[$i]->title; $description = $xml->channel->item[$i]->description; ?> πιστεύω πως θα πρέπει το src να ξεκινάει : src="youtube.com/......" , ετσι ώστε να φύγει οτιδήποτε έιναι αριστερά του.
lion2486 Δημοσ. 22 Απριλίου 2014 Δημοσ. 22 Απριλίου 2014 κάτι της μορφής $url = substr( $url, strpos( $url, '///' ) ); ;
rone Δημοσ. 23 Απριλίου 2014 Μέλος Δημοσ. 23 Απριλίου 2014 Τελικά χρησιμοποιησα την str_replace και μου εμφανίζει και τα δύο url.Ορίστε και ο κώδικας!Ίσως βοήθησει κάποιον στο μέλλον! <?php $html = ""; $url = "http://123.gr/index.php?format=feed&type=rss"; $xml = file_get_contents($url); $x = new SimpleXmlElement($xml); foreach ( $x->channel->item as $entry ){ $part_to_replace = array("http://123.gr///www.youtube.com/"); $replaced = array("http://www.youtube.com/"); $entry->description = str_replace( $part_to_replace, $replaced, $entry->description ); echo $entry->title; echo $entry->description; ?>
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα