php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > XML
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 30-04-2013, 15:02
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Feedparsen II

Hallo, da ich immer häufiger auf irgendwelche invaliden Feeds stoße, die dann mein MAGPIE parser nicht liest, denke ich ernsthaft darüber nach, mir selbst sowas zu schreiben, das für alle xml-Dateien passt.

Momentan schaffe ich es nicht, dass mir der Parser auch den Link zurückliefert, der hier steckt:


Code:
<id>http://www.tagesschau.de</id> <entry> <title>Niederlande: Willem-Alexander feierlich ins Amt eingeführt</title> <link href="http://www.tagesschau.de/ausland/thronwechsel-niederlande102.html"/> <id>http://www.tagesschau.de/ausland/thronwechsel-niederlande102.html</id> <updated>2013-04-30T14:42:02.265+02:00</updated> <summary>Willem-Alexander hat seinen Eid als König der Niederlande geleistet. Zur Amtseinführung in der Nieuwe Kerk in Amsterdam versammelten sich neben Politikern des Landes auch Vertreter von Königshäusern aus aller Welt. Am Vormittag hatte Königin Beatrix ihr Amt übergeben.</summary> </entry> <entry> <title>Thronwechsel: Jubel für das neue Königspaar</title>
tagesschau.de

Wenn ich dagegen den rss2-feed nehme, findet er alles, der ist nämlich so aufgebaut:

Code:
<item> <title>Thronwechsel: Jubel für das neue Königspaar</title> <link>http://www.tagesschau.de/multimedia/bilder/thronwechsel100.html</link>
Mit dem Magpie-Parser frage ich standardgemäß so ab:
Code:
{ define('MAGPIE_INPUT_ENCODING', 'UTF-8');
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
define('MAGPIE_CACHE_ON', false);
define('MAGPIE_CACHE_AGE', 0);
require_once('rss_fetch.inc');
$zaehl = 0;
$alttitle = "";

if ( $url ) {
$num_items = 13;
$rss = fetch_rss( $url );
$items = array_slice($rss->items, 0,$num_items);
}

echo "<ul id='feed'>";
foreach ($items as $item) {
$href = $item['link'];
$title = $item['title'];
$desc = $item['description']; 

$title = trim($title);
if (($title !== '') && ($title !== NULL) && ($title !== $alttitle)) {
echo "<li><a href = $href target='_blank'>$title</a></li>";
$alttitle = $title;
$zaehl++;
}
}
if ($zaehl == 0) {
echo $url;
echo " ist leider nicht erreichbar";
echo " (Versuchen Sie, ob Aktualisieren mit F5 hilft)";
}
else
echo "</ul>";
}
?>
Ich verstehe das so, dass er 'link' nicht findet, weil es beim atom-feed 'link href' heißt. Wenn ich aber nach 'link href' frage, kommt nix. title findet er natürlich in beiden Fällen. Ich brauche aber den atom-feed, weil nur der die richtige Reihenfolge liefert. (Nach Wichtigkeit statt nach Aktualität). Habt Ihr einen Tipp 1. für diesen Fall und 2. für das Basteln eines eigenen Parsers, der auch invalide feeds ausliest.

Danke Gruß
newbie1955
Mit Zitat antworten
  #2 (permalink)  
Alt 30-04-2013, 19:42
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Schaue Dir den an, den hatte ich mal vor einigen Jahren geschrieben, als ich noch nicht viel Ahnung hatte. Deshalb möchte ich den Code hier nicht unbedingt präsentieren. Der ist mit SimpleXML und für RSS und Atom. Weiß aber gerade nicht, ob die untere oder obere Hälfte für RSS oder Atom ist, eine von beiden Hälften jedoch gewiss.

Ein einfacher RSS/Atom Reader/Feedeader für Ihre Website/Homepage

Jetzt ist es mir wieder eingefallen, Unterschied war, einmal wurde item und einmal entry benutzt, denke bei Atom war es entry. Also, einmal mit channel->item und einmal mit entry, je nachdem ob Atom oder RSS. Die anderen Knoten unterscheiden sich auch noch etwas vom Namen. Schaue Dir das am besten an.

Werde ich mal in den nächsten Tagen überarbeiten, aus heutiger Sicht kommt mir zumindest str_replace etwas dämlich vor.

Geändert von Melewo (30-04-2013 um 19:57 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 01-05-2013, 00:04
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Danke, Melewo

erstmal für den Parser, werde mal versuchen, ihn zu verstehen und anzuwenden. Bei meinen Versuchen hatte ich schon item durch entry ersetzt, hatte aber noch nichts gebracht (heißt es dann "$entries as $entry" statt "items as item"?) und wie man "<link href>" umsetzt, weiß ich auch nicht. Bei rss heißt es ja 'link', was vom parser leicht zu finden ist aber muss man den Leerraum zwischen link und href miteingaben? es handelt sich um
http://www.tagesschau.de/xml/atom.

Sag mal, wenn ich die Demo des feedreaders auf Deiner Seite anschauen will, welches Passwort muss ich denn da nun eingeben, das verstehe ich nicht.

Gruß
newbie1955

Geändert von newbie1955 (01-05-2013 um 00:06 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 01-05-2013, 07:57
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von newbie1955 Beitrag anzeigen
welches Passwort muss ich denn da nun eingeben
Das Formular bzw. den Posteingang hatte ich gestern in den Demos noch auskommentiert, um nicht spielende Kids anzulocken. Du sollst Dir nicht das Demo ansehen, Du sollst Dir den herunterladen, dann kannst Du da Dein eigenes Passwort eingeben.

Eigentlich dachte ich, dass Du bis zu der Zeile "Die XML-Datei wird geladen" alles unnötige herausnimmst und den fertigen Code übernimmst. Hatte gestern keine Lust mehr, zum Beispiel bei echo ("Ausgabe") die Klammern zu entfernen, weil bei echo heute kein Mensch mehr Klammern verwenden würde, obwohl die nicht schaden. Nun habe ich nur mal schnell etwas aufgeräumt und angepasst.

Mit den Namen der Knoten scheint auch nicht mehr alles so zu sein, wie noch vor Jahren, doch jedenfalls ladet der ja erst einmal den Feed und zur Not könnte da immer noch etwas angepasst werden, falls Du mal einen anderen Feed mit anderen Namen finden solltest, dann gebe Bescheid.

PHP-Code:
<?php
$seite 
"http://www.tagesschau.de/xml/atom/";
 
$data file_get_contents($seite);

if(
$data != false) {

    
$data str_replace("content:encoded""content"$data);
    
$pxml simplexml_load_string($data"SimpleXMLElement"LIBXML_NOCDATA);

    
$si =  0;
    
$cw 10;

    
/*-- für RSS --------------------------- */

    
if($pxml->channel->item) {

        foreach (
$pxml->channel->item as $nachricht) {

            if (
$nachricht->title) {
                echo 
"<a href=\"".htmlspecialchars($nachricht->link)."\" target=\"_blank\">".htmlspecialchars($nachricht->title)."</a>";
            }
            if (
$nachricht->content) {
                echo 
"<br>\n".htmlspecialchars($nachricht->content)."<br>\n";
            } else {
                echo 
"<br>\n".htmlspecialchars($nachricht->description)."<br>\n";
            }
            if (
$nachricht->link) {
                echo 
"<a href=\"".htmlspecialchars($nachricht->link)."\" target=\"_blank\">Linktext</a><br>\n";
            }
            if (
$nachricht->pubDate) {
                echo 
"<br>".htmlspecialchars($nachricht->pubDate);
            }
            if (
$nachricht->author) {
                echo 
" / ".htmlspecialchars($nachricht->author)."<br>";
            } else {echo 
"<br>\n";
            }

            
$si++;
            if (
$si == $cw) {break;
            }
        }
    }
    
/*-- für Atom -------------------------- */
    
else{

        foreach (
$pxml->entry as $nachricht) {

            if (
$nachricht->title){ $attr $nachricht->link->attributes();
                echo 
"<a href=\"".htmlspecialchars($attr["href"])."\" target=\"_blank\">".htmlspecialchars($nachricht->title)."</a>";
            }
            if (
$nachricht->content) {
                echo 
"<br>\n".htmlspecialchars($nachricht->content)."<br>\n";
            } else {
                echo 
"<br>\n".htmlspecialchars($nachricht->summary)."<br>\n";
            }
            if (
$nachricht->link) {
                
$attr $nachricht->link->attributes();
                echo 
"<a href=\"".htmlspecialchars($attr["href"])."\" target=\"_blank\">Linktext</a><br>\n";
            }
            if (
$nachricht->published) {
                
$meindat htmlspecialchars($nachricht->published);
            }
            if (
$nachricht->issued) {
                
$meindat htmlspecialchars($nachricht->issued);
            }
            if (
$nachricht->updated) {
                
$meindat htmlspecialchars($nachricht->updated);
            }
            
$import = array("T","Z");
            
$export = array(" um "," Uhr");
            
$zeitan str_replace($import$export$meindat);
            echo 
"<br>".substr($zeitan019);

            if(
$nachricht->author->name) {
                echo 
" / ".htmlspecialchars($nachricht->author->name)."<br>";
            } else {
                echo 
"<br>\n";
            }

            
$si++;
            if (
$si == $cw) {break;
            }
        }
    }
}
else {echo 
"Es konnten keine Daten geladen werden!";}

?>

Geändert von Melewo (01-05-2013 um 08:07 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 01-05-2013, 12:00
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Danke

für die Mühe! Werde es gleich nachher ausprobieren. Im Moment spinnt der Atom-Feed der Tagesschau allerdings ohnehin alle paar Minuten, ist völlig leer usw. Aber die haben ja gerade einen Relaunch hinter sich, da wollen wir mal nicht so streng sein...

Gruß
newbie1955
Mit Zitat antworten
  #6 (permalink)  
Alt 01-05-2013, 21:48
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Nochmal

vielen Dank - funktioniert ganz hervorragend, habe mir ein paar Angaben rausgenommen, die ich nicht ausgebe wie description oder Datum und werde noch das ul/li für die Ausgaben hinzufügen, und mir eine function draus bauen, aber sonst alles bestens. Wozu das str_replace mit "content:encoded", "content" nötig ist, weiß ich noch nicht, aber solange es funktioniert.....
Und dann werde ich noch mal rumprobieren, ob es an den berühmten bösen feeds utf_8-Probleme gibt....

Danke, vielleicht werde ich jetzt den ganzen Magpie Parser rausschmeißen. Du hast was gut....

Gruß
newbie1955

Geändert von newbie1955 (01-05-2013 um 21:52 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 01-05-2013, 22:22
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Die Zeile kann raus, wenn Du die nicht benötigst. Hatte einige Feeds aus unterschiedlichen Quellen und einer enthielt dann:

Code:
<content:encoded>Text...</content:encoded>
Doch wenn Du so etwas nicht bei hast, dann kannst Du die Zeile entfernen.
Mit Zitat antworten
  #8 (permalink)  
Alt 10-05-2013, 16:07
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Zeichenproblem, die soundsovielte

Hallo, habe bei einer ausländischen Zeitung erneut ein utf-8-Problem. Trotz utf_8 decodes bekomme ich einige Zeichen nur als Fragezeichen dargestellt. Die Ursprungsseite gibt als charset utf-8 an.



PHP-Code:
  <div class="border">
    
 <a href="http://www.novilist.hr/Vijesti" target='_blank'> 
<img src="logos/novi.jpg" alt="Novilist" style=" margin:3px 0px 0px -45px ; padding:0px;"/></a>
<ul>

<?php
$data 
file_get_contents('http://www.novilist.hr/Vijesti');
$doc = new DOMDocument();

 
$doc->loadHTML($data); 


$xPath = new DOMXPath($doc);

$zaehler 0;
foreach (
$xPath->query('//h2') as $element
{    


   
     
$hreft $element->getAttribute('href');
     
$class $element->getAttribute('class');
     
$title str_replace('""','"',$element->nodeValue); 


$hreft utf8_encode($hreft);
$title utf8_encode($title);


echo 
"<li><a href=\"".htmlspecialchars($hreftENT_QUOTES)."\" target=\"_blank\">".htmlspecialchars($titleENT_QUOTES)."</a></li>\n"
                 
$zaehler++;

    }  

foreach (
$xPath->query('//h4/a') as $element
{    
  

     
$hreft $element->getAttribute('href');
     
$class $element->getAttribute('class');
     
$title str_replace('""','"',$element->nodeValue); 


If (
$zaehler <= 13)
    {

$hreft utf8_encode($hreft);
$title utf8_encode($title);

echo 
"<li><a href=\"".htmlspecialchars($hreftENT_QUOTES)."\" target=\"_blank\">".htmlspecialchars($titleENT_QUOTES)."</a></li>\n"
                 
$zaehler++;


           }
    }  

?>
</ul> 

  
    </div>
Es müsste herauskommen:

Zitat:
IZBORI 2013 Švornić na Korzu otkrio spomenik za izgubljenih 40.000 stanovnika i 30.000 radnih mjesta
Es kommt aber heraus:
Zitat:
IZBORI 2013 ?vorni? na Korzu otkrio spomenik za izgubljenih 40.000 stanovnika i 30.000 radnih mjesta
Dank und Gruß newbie1955

Geändert von newbie1955 (10-05-2013 um 16:40 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 10-05-2013, 18:18
mephisto111
 Registrierter Benutzer
Links : Onlinestatus : mephisto111 ist offline
Registriert seit: Nov 2003
Beiträge: 52
mephisto111 befindet sich auf einem aufstrebenden Ast
Standard Zeichenproblem

Hallo newbie1955,

zwei Punkte:

1. Wenn die Ursprungsseite UTF-8-kodiert ist, weshalb dann die beiden Zeilen mit "utf8_encode"?
2. Wenn man auf die erste Beispielzeile ganz unten "utf8_decode" anwendet, lassen sich zwei der Zeichen nicht konvertieren und man bekommt die Fragezeichen (wie in der zweiten Beispielzeile angegeben).
Mit Zitat antworten
  #10 (permalink)  
Alt 10-05-2013, 18:26
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard utf_8

Ja, es war der etwas hilflose Versuch, meine eigene Ausgabe noch mal ausdrücklich in utf8 zu codieren, da ich auf einer anderen Unter-Seite ähnliche Probleme hatte, dass meine eigene Seite trotz entsprechender header-Deklarierung nicht utf8 ausgab. Aber ob mit oder ohne encode oder decode oder ganz ohne : es werden Zeichen nicht richtig ausgegeben.

Geändert von newbie1955 (10-05-2013 um 18:55 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 10-05-2013, 18:53
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Der Link

.. zu der entsprechenden Seite:

Vijesti - Naslovnica / Novi list
Mit Zitat antworten
  #12 (permalink)  
Alt 10-05-2013, 20:23
mephisto111
 Registrierter Benutzer
Links : Onlinestatus : mephisto111 ist offline
Registriert seit: Nov 2003
Beiträge: 52
mephisto111 befindet sich auf einem aufstrebenden Ast
Standard Debugging

Hallo newbie1955,

was wird ausgegeben, wenn oben im Code die Zeile
PHP-Code:
echo 'Švornić'
ergaenzt wird? Wenn hier schon ein Fehler auftritt, koennte ein falsch eingestellter Browserzeichensatz (z.B. durch eine falsche oder fehlende Header-Einstellung) die Ursache des Problems sein.
Mit Zitat antworten
  #13 (permalink)  
Alt 11-05-2013, 18:27
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Das hier

wird ausgegeben:
Zitat:
�vorni�
Mit Zitat antworten
  #14 (permalink)  
Alt 11-05-2013, 19:32
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Bei mir wird alles richtig ausgegeben. Füge mal so eine Zeile mit č ein und konvertiere dann die Datei und rufe sie dann auf.

PHP-Code:
<?php header("Content-Type: text/html; charset=UTF-8"); ?>
<!DOCTYPE html>
<html>

<head>
<title>Test</title>
<meta charset="UTF-8">
</head>

<body>
<h1>Sučeljavanje gradonačelnika nisu došli</h1>
<div class="border">
<a href="http://www.novilist.hr/Vijesti" target="_blank">
<img src="logos/novi.jpg" alt="Novilist" style=" margin:3px 0px 0px -45px; padding:0px"/></a>

<ul>
<?php
error_reporting
(-1);
ini_set("display_errors"true);
libxml_use_internal_errors(true);

$data file_get_contents('http://www.novilist.hr/Vijesti');
$doc = new DOMDocument();

$doc->loadHTML($data);

$xPath = new DOMXPath($doc);

$zaehler 0;
foreach (
$xPath->query('//h2') as $element) {

    
$hreft $element->getAttribute('href');
    
$title str_replace('""','"',$element->nodeValue);

    echo 
"<li><a href=\"".htmlspecialchars($hreftENT_QUOTES)."\" target=\"_blank\">".htmlspecialchars($titleENT_QUOTES)."</a></li>\n";
    
$zaehler++;
    }

foreach (
$xPath->query('//h4/a') as $element) {

    
$hreft $element->getAttribute('href');
    
$title str_replace('""','"',$element->nodeValue);

    If (
$zaehler <= 13) {
        echo 
"<li><a href=\"".htmlspecialchars($hreftENT_QUOTES)."\" target=\"_blank\">".htmlspecialchars($titleENT_QUOTES)."</a></li>\n";
        
$zaehler++;
    }
}
?>
</ul>
</div>
</body>
</html>
Habe es unter Localhost und im Web getestet, kein Unterschied. Denke das hängt bei Dir irgendwie damit zusammen, dass Du die Dateien nicht per FTP hochladest, sondern die da irgendwie hochkopierst oder wie war das mit dem Hochladen? Doch dann müsste die ja auch bei Dir zumindest unter Localhost zumindest erst einmal richtig ausgeben werden und sollte nur anschließend im Web Glyphen oder Fragezeichen liefern, falls etwas nicht stimmt.

Geändert von Melewo (11-05-2013 um 19:49 Uhr)
Mit Zitat antworten
  #15 (permalink)  
Alt 13-05-2013, 22:32
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Neuer feed

Du hattest mir ja netterweise bei dem feed geholfen, jetzt habe ich wieder einen nicht-validen, der aber von dem Script unten auch nicht erreicht wird. Du schriebst ja, ich soll Dir dann Bescheid geben: ALso bei dem hier kommt als Ergebnis nix, obwohl der Browser ihn separat aufgerufen anzeigt.

Code:
 <?php

$seite = "http://www.nordbayern.de/cmlink/15.423?cid=2.178";
 
$data = file_get_contents($seite);

if($data != false) {

     $pxml = simplexml_load_string($data, "SimpleXMLElement", LIBXML_NOCDATA);

    $si =  0;
    $cw = 10;

    /*-- für RSS --------------------------- */

    if($pxml->channel->item) {

        foreach ($pxml->channel->item as $nachricht) {

            if ($nachricht->title) {
                echo "<li><a href=\"".htmlspecialchars($nachricht->link)."\" target=\"_blank\">".htmlspecialchars($nachricht->title)."</li></a>";
            }
            if ($nachricht->content) {
                echo "<br>\n".htmlspecialchars($nachricht->content)."<br>\n";
            } else {
                echo "<br>\n".htmlspecialchars($nachricht->description)."<br>\n";
            }
            if ($nachricht->link) {
                echo "<a href=\"".htmlspecialchars($nachricht->link)."\" target=\"_blank\">Linktext</a><br>\n";
            }
            if ($nachricht->pubDate) {
                echo "<br>".htmlspecialchars($nachricht->pubDate);
            }
            if ($nachricht->author) {
                echo " / ".htmlspecialchars($nachricht->author)."<br>";
            } else {echo "<br>\n";
            }

            $si++;
            if ($si == $cw) {break;
            }
        }
    }
    /*-- für Atom -------------------------- */
    else{

        foreach ($pxml->entry as $nachricht) {

            if ($nachricht->title){ $attr = $nachricht->link->attributes();
                echo "<li><a href=\"".htmlspecialchars($attr["href"])."\" target=\"_blank\">".htmlspecialchars($nachricht->title)."</li></a>";
            }
           /* if ($nachricht->content) {
                echo "<br>\n".htmlspecialchars($nachricht->content)."<br>\n";
            } else {
                echo "<br>\n".htmlspecialchars($nachricht->summary)."<br>\n";
            }
            if ($nachricht->link) {
                $attr = $nachricht->link->attributes();
                echo "<a href=\"".htmlspecialchars($attr["href"])."\" target=\"_blank\"></a><br>\n";
            }
         if ($nachricht->published) {
                $meindat = htmlspecialchars($nachricht->published);
            }
            if ($nachricht->issued) {
                $meindat = htmlspecialchars($nachricht->issued);
            }
            if ($nachricht->updated) {
                $meindat = htmlspecialchars($nachricht->updated);
            }
            $import = array("T","Z");
            $export = array(" um "," Uhr");
            $zeitan = str_replace($import, $export, $meindat);
            echo "<br>".substr($zeitan, 0, 19);

            if($nachricht->author->name) {
                echo " / ".htmlspecialchars($nachricht->author->name)."<br>";
            } else {
                echo "<br>\n";
            }
*/
            $si++;
            if ($si == $cw) {break;
            }
        }
    }
}
else {echo "Es konnten keine Daten geladen werden!";}

?>   
</ul>
Gruß und Dank newbie1955


Zitat:
Zitat von Melewo Beitrag anzeigen
Das Formular bzw. den Posteingang hatte ich gestern in den Demos noch auskommentiert, um nicht spielende Kids anzulocken. Du sollst Dir nicht das Demo ansehen, Du sollst Dir den herunterladen, dann kannst Du da Dein eigenes Passwort eingeben.

Eigentlich dachte ich, dass Du bis zu der Zeile "Die XML-Datei wird geladen" alles unnötige herausnimmst und den fertigen Code übernimmst. Hatte gestern keine Lust mehr, zum Beispiel bei echo ("Ausgabe") die Klammern zu entfernen, weil bei echo heute kein Mensch mehr Klammern verwenden würde, obwohl die nicht schaden. Nun habe ich nur mal schnell etwas aufgeräumt und angepasst.

Mit den Namen der Knoten scheint auch nicht mehr alles so zu sein, wie noch vor Jahren, doch jedenfalls ladet der ja erst einmal den Feed und zur Not könnte da immer noch etwas angepasst werden, falls Du mal einen anderen Feed mit anderen Namen finden solltest, dann gebe Bescheid.

PHP-Code:
<?php
$seite 
"http://www.tagesschau.de/xml/atom/";
 
$data file_get_contents($seite);

if(
$data != false) {

    
$data str_replace("content:encoded""content"$data);
    
$pxml simplexml_load_string($data"SimpleXMLElement"LIBXML_NOCDATA);

    
$si =  0;
    
$cw 10;

    
/*-- für RSS --------------------------- */

    
if($pxml->channel->item) {

        foreach (
$pxml->channel->item as $nachricht) {

            if (
$nachricht->title) {
                echo 
"<a href=\"".htmlspecialchars($nachricht->link)."\" target=\"_blank\">".htmlspecialchars($nachricht->title)."</a>";
            }
            if (
$nachricht->content) {
                echo 
"<br>\n".htmlspecialchars($nachricht->content)."<br>\n";
            } else {
                echo 
"<br>\n".htmlspecialchars($nachricht->description)."<br>\n";
            }
            if (
$nachricht->link) {
                echo 
"<a href=\"".htmlspecialchars($nachricht->link)."\" target=\"_blank\">Linktext</a><br>\n";
            }
            if (
$nachricht->pubDate) {
                echo 
"<br>".htmlspecialchars($nachricht->pubDate);
            }
            if (
$nachricht->author) {
                echo 
" / ".htmlspecialchars($nachricht->author)."<br>";
            } else {echo 
"<br>\n";
            }

            
$si++;
            if (
$si == $cw) {break;
            }
        }
    }
    
/*-- für Atom -------------------------- */
    
else{

        foreach (
$pxml->entry as $nachricht) {

            if (
$nachricht->title){ $attr $nachricht->link->attributes();
                echo 
"<a href=\"".htmlspecialchars($attr["href"])."\" target=\"_blank\">".htmlspecialchars($nachricht->title)."</a>";
            }
            if (
$nachricht->content) {
                echo 
"<br>\n".htmlspecialchars($nachricht->content)."<br>\n";
            } else {
                echo 
"<br>\n".htmlspecialchars($nachricht->summary)."<br>\n";
            }
            if (
$nachricht->link) {
                
$attr $nachricht->link->attributes();
                echo 
"<a href=\"".htmlspecialchars($attr["href"])."\" target=\"_blank\">Linktext</a><br>\n";
            }
            if (
$nachricht->published) {
                
$meindat htmlspecialchars($nachricht->published);
            }
            if (
$nachricht->issued) {
                
$meindat htmlspecialchars($nachricht->issued);
            }
            if (
$nachricht->updated) {
                
$meindat htmlspecialchars($nachricht->updated);
            }
            
$import = array("T","Z");
            
$export = array(" um "," Uhr");
            
$zeitan str_replace($import$export$meindat);
            echo 
"<br>".substr($zeitan019);

            if(
$nachricht->author->name) {
                echo 
" / ".htmlspecialchars($nachricht->author->name)."<br>";
            } else {
                echo 
"<br>\n";
            }

            
$si++;
            if (
$si == $cw) {break;
            }
        }
    }
}
else {echo 
"Es konnten keine Daten geladen werden!";}

?>
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
parser


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:59 Uhr.