Ich würde besser damit anfangen zu sagen, dass ich kein Programmierer bin. Ich ändere einen Einkaufswagen und habe jetzt ein Problem, das über meinem Paygrade liegt. Der Warenkorb ermöglicht es mir, die Ausgabe eines RSS-Feeds in einem Block auf einer Seite anzuzeigen. Das Problem besteht darin, dass ein Großteil des Inhalts des Feeds innerhalb von CDATA-Tags liegt und daher nicht ordnungsgemäß angezeigt wird. Ich muss die CDATA-Tags aus dem Feed entfernen.Entfernen von CDATA Tags von RSS (xml) feed
Der Code, der das Futter verarbeitet ist
function fn_get_rss_feed($data)
{
if (!empty($data['feed_url'])) {
$data_key = 'rss_data_cache_' . (isset($data['block_data']['block_id']) ? $data['block_data']['block_id'] : 0);
if (!empty($data['cache_time'])) {
Registry::register_cache($data_key, $data['cache_time'], CACHE_LEVEL_TIME);
}
if (Registry::is_exist($data_key) == false) {
$limit = !empty($data['max_item']) ? $data['max_item'] : 3;
$rss_data = array();
$rss = simplexml_load_string(fn_get_contents($data['feed_url']));
if (!empty($rss)) {
$it = 0;
$items = array();
foreach ($rss->channel->item as $item) {
if ($it > $limit) {
break;
}
$items[] = array(
'title' => (string)$item->title,
'description' => (string)$item->description,
'pubDate' => (string)$item->pubDate,
'link' => (string)$item->link
);
$it++;
}
$rss_data = array(array(
$items,
(string)$rss->channel->link,
$data['feed_url']
));
Registry::set($data_key, $rss_data);
}
return $rss_data;
} else {
return Registry::get($data_key);
}
}
return array();
}
Es ist die „Beschreibung“ ist, die sich um sie CDATA Tags bekam ist. Suche im Internet Ich habe diesen Code zum Entfernen von CDATA-Tags aus einer Zeichenfolge gefunden.
function strip_cdata($string)
{ preg_match_all('/<!\[cdata\[(.*?)\]\]>/is', $string, $matches);
return str_replace($matches[0], $matches[1], $string);
}
Ich nehme an, es ist ein Weg, um diese Funktion zu verwenden, um die CDATA-Tags aus der ganzen Beschreibung abzustreifen - oder vielleicht ist es nicht. Die Ausgabe des RSS-Feeds wird über eine .tpl-Datei angezeigt.
Alle und alle Hilfe dankbar angenommen.
Bruce
Vielen Dank für Ihre Hilfe, aber es zeigt immer noch alle Informationen in den cdata Tags und nicht den HTML-Code um den Inhalt zu lesen. – user1328397
Hm, tut mir leid, aber ich verstehe das Problem nicht wirklich. – rwos
Keine Sorge - ich bin mir sicher, dass Sie noch viel mehr Verständnis dafür haben. – user1328397