2012-03-29 2 views
0

Ich baue eine mobile Version meiner Firmenwebseite, und eine Sache, die wir brauchen, ist ein RSS-Feed.Spezifischen HTML & Inhalt von einer Seite mit PHP für RSS entfernen

Ich habe den RSS in feinen ziehen mit diesem Code:

<?php 

    $url = 'http://www.someurl.com/rss/articles'; 
    $feed = simplexml_load_file($url, 'SimpleXMLIterator'); 
    $filtered = new LimitIterator($feed->channel->item, 0, 15); 
    foreach ($filtered as $item) { ?> 

    <li data-icon="false"> 
    <h2><a href="<?php echo $item->link; ?>"><?php echo $item->title; ?></a></h2> 
    <p class="desc"><?php echo $item->description; ?></p> 
    <br /> 
    <p class="category"><b><?php echo $item->category; ?></b></p> 
    <a class="link" href="<?php echo $item->link; ?>">Read More</a> 
    <br /> 
    <p class="pubDate"><?php echo $item->pubDate; ?></p> 
    <br /> 
    </li> 

<?php } ?> 

Was ich nutzen tun möchte, ist entweder die fopen() oder file_get_contents() das Klicken der Handhabung ‚Read More‘ -Link und Streifen alle Der Inhalt der eingehenden Seite mit Ausnahme des Tags <article>.

Ich habe Google den letzten Tag gesucht und war nicht erfolgreich bei der Suche nach Tutorials zu diesem Thema.

EDIT:

Ich möchte die gestrippt HTML Inhalte in ihre eigene Ansicht in meinem Rahmen laden.

ZWEITE EDIT:

Ich möchte nur teilen mag, wie ich dieses Problem gelöst.

Ich veränderte mein $item->link; über die URL als Variable übergeben werden:

<a href="article.php?rss_url=<?php echo $item->link; ?>">Read More</a> 

Auf der article.php Seite, ich die Variable mit einer if() Anweisung sammeln:

if (isset($_GET['rss_url']) && is_string($_GET['rss_url'])) { 
    $url = $_GET['rss_url']; 
    } 

Dann

Bau auf den Vorschlägen der Kommentare unten, baute ich einen Weg, um dann die eingehende URL sammeln und strippen Sie die notwendigen Tags zu formatieren dann für meine mobile Ansicht:

<div id="article"> 
    <?php 
    $link = file_get_contents($url); 
    $article = strip_tags($link, '<title><div><article><aside><footer><ul><li><img><h1><h2><span><p><a><blockquote><script>'); 
    echo $article; 
    ?> 
</div> 

Hoffentlich hilft dies alle anderen, die dieses Problem auftreten können :)

Antwort

1

Ich bin nicht sicher, ob ich es richtig verstehe, sind aber Sie ausgeben zu versuchen, die Inhalte auf der aktuellen Seite, wenn jemand die mehr Link klickt?

Ich würde wahrscheinlich Javascipt verwenden zu tun, vielleicht jQuery .load() function die html von einer anderen Seite lädt und ermöglicht es Ihnen, nur bestimmte Fragmente einer Seite zu laden .. aber wenn Sie PHP verwenden müssen, würde ich schauen in Simple HTML DOM Parser

$html = file_get_html($yourUrl); 
$article = $html->find('article', 0); // Assuming you only have 1 article/page 
echo $article; 
1

Die einzige Möglichkeit, die ich sehen kann, besteht darin, ein eigenes separates Skript zum Weiterleiten der Links einzurichten.

Anstatt also Echo item- $> Link Verwendung

echo 'LinkProcessor.php?link='.$item->link 

Dann Setup, ein Skript LinkProcessor.php genannt und verwenden file_get_contents auf dieser Seite. Anschließend können Sie die XML verarbeiten, um nur den Artikel Tag zeigen und Echo die Ergebnisse:

$article = file_get_contents($_GET['link']); 
$xml = new SimpleXMLElement($article); 
$articleXml = $xml->xpath('//article'); 
echo articleXml[0]; 

Beachten Sie, dass der Code nicht getestet, aber es sollte in Ordnung sein.