Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπέρα παιδιά!

παρσάρω ένα 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/......"    , ετσι ώστε να φύγει οτιδήποτε έιναι αριστερά του.

 

Δημοσ.
 

Τελικά χρησιμοποιησα την 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;

?>

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...