w3school samples quiz program poll codes php rss

samples - quiz de php



Recuperando fuente RSS con etiqueta<contenido: codificado> (5)

.... ejemplo de PHP

<?php // -------------------------------------------------------------------- $feed_url = ''http://www.tagesschau.de/xml/rss2''; $xml_data = simplexml_load_file($feed_url); // -------------------------------------------------------------------- $i=0; foreach($xml_data->channel->item as $ritem) { // -------------------------------------- $e_title = (string)$ritem->title; $e_link = (string)$ritem->link; $e_pubDate = (string)$ritem->pubDate; $e_description = (string)$ritem->description; $e_guid = (string)$ritem->guid; $e_content = $ritem->children("content", true); $e_encoded = (string)$e_content->encoded; $n = ($i+1); // -------------------------------------- print ''<p> ---------- ''. $n .'' ---------- </p>''."/n"; print "/n"; print ''<div class="entry" style="margin:0 auto; padding:4px; text-align:left;">''."/n"; print ''<p> Title: ''. $e_title .''</p>''."/n"; print ''<p> Link: ''. $e_link .''</p>''."/n"; print ''<p> Date: ''. $e_pubDate .''</p>''."/n"; print ''<p> Desc: ''. $e_description .''</p>''."/n"; print ''<p> Guid: ''. $e_guid .''</p>''."/n"; print ''<p> Content: </p>''."/n"; print ''<p style="background:#DEDEDE">''. $e_encoded .''</p>''."/n"; print ''</div>''."/n"; // -------------------------------------- print ''<br />''."/n"; print ''<br />''."/n"; $i++; } // -------------------------------------------------------------------- ?>

Si desea ver el código fuente HTML del contenido en su navegador, use por ejemplo:

print ''<pre style="background:#DEDEDE">''. htmlentities($e_encoded) .''</pre>''."/n";

: =)

Tengo el siguiente fragmento de código:

function getFeed($feed_url) { $content = file_get_contents($feed_url); $x = new SimpleXmlElement($content); echo "<ul>"; foreach($x->channel->item as $entry) { echo "<li><a href=''$entry->link'' title=''$entry->title''>" . $entry->title . "</a></li>"; echo "<li>$entry->content</li>"; echo "</ul>"; }

Funciona EXCEPTO el $entry->content

Esa parte no se registra. En la fuente real, la etiqueta aparece como <content:encoded> pero no puedo obtenerla. ¿Alguna sugerencia?


En <content:encoded> , content es el namespace y encoded es el nombre de la etiqueta.

Tienes que usar SimpleXMLElement::children . Ver la salida de

var_dump($entry->children("content", true));


La respuesta de trabajo para esto es solo:

$e_content = $entry->children("content", true); $e_encoded = (string)$e_content->encoded;


Te sugiero el siguiente código:

function getFeed($feed_url) { $feeds = file_get_contents($feed_url); $feeds = str_replace("<content:encoded>","<contentEncoded>",$feeds); $feeds = str_replace("</content:encoded>","</contentEncoded>",$feeds); $rss = simplexml_load_string($feeds); echo "<ul>"; foreach($x->channel->item as $entry) { echo "<li><a href=''$entry->link'' title=''$entry->title''>" . $entry->title . "</a></li>"; echo "<li>$entry->contentEncoded</li>"; echo "</ul>"; }

Espero que esto funcione para usted.


El nombre de la etiqueta aquí está "codificado". Prueba esto:

$url = ''put_your_feed_URL''; $rss = new DOMDocument(); $rss->load($url); $feed = array(); foreach ($rss->getElementsByTagName(''item'') as $node) { $item = array ( ''title'' => $node->getElementsByTagName(''title'')->item(0)->nodeValue, ''link'' => $node->getElementsByTagName(''link'')->item(0)->nodeValue, ''pubDate'' => $node->getElementsByTagName(''pubDate'')->item(0)->nodeValue, ''description'' => $node->getElementsByTagName(''description'')->item(0)->nodeValue, ''content'' => $node->getElementsByTagName(''encoded'')->item(0)->nodeValue ); array_push($feed, $item); }