php-resource



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

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack (1) Themen-Optionen Bewertung: Bewertung: 13 Stimmen, 5,00 durchschnittlich.
  #46 (permalink)  
Alt 11-06-2013, 23:53
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Eigentlich gibt es unterschiedliche Wege. Du teilst das Script in header.php und was-weiß-ich.php und includest die in eine HTML-Seite wo die hingehören oder Du teilst die HTML-Steite in Header und Footer und includest diese ins Script.

Du kannst daraus auch eine Funktion oder Klasse machen, gehen tut das schon. Nur traue ich Dir das ehrlich gesagt noch nicht ganz zu. Die müsste dann eigentlich unter error_reporting beginnen und vor </div> aufhören, an der könntest Du dann die Feed-Adresse übergeben, nur einiges Zeilen müsste wohl umgeschrieben werden.

Ich hatte jetzt beinahe alles in nur eine Seite gequetscht, damit es übersichtlicher ist. Du könntest jedoch auch alle Funktionen in eine funktionen.php auslagern und diese includen (eigentlich inkludieren). Damit würde es schon einmal leerer aussehen.

So, nun habe ich die Seite zur Ausgabe und zum Einbinden abgespeckt und beinahe alles ausgelagert. Ob Funktion oder Klasse, beides nimmt sich ja nicht so sehr viel, nur etwas mehr Arbeit beim Umstellen, deshalb gleich eine Klasse davon gebastelt. Nun sollte das Script sich leichter in bestehende Webseiten einbinden lassen.

Feedreader mit ausgelagerten Funktionen

Mal sehen, ob Du damit nun besser klar kommst. Brauchst ja nur HTML ergänzen, wie es Dir vorschwebt.

Geändert von Melewo (12-06-2013 um 16:06 Uhr)
Mit Zitat antworten
  #47 (permalink)  
Alt 12-06-2013, 21:20
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Danke

...wusste gar nicht, dass Du noch daran sitzt. Ich habe inzwischen selbst gefummelt und habe zumindest beim Abspecken einiges erreicht. Den Focus-feed habe ich fast so, wie ich ihn brauche, also mit tooltip (den ich mit explode wohl noch ein bisschen entschlacken muss) und sonst nur link und title, hätte jetzt versucht, das Ganze noch an meine ul/li-Darstellung anzupassen.

Dann habe ich es mit der Süddeutschen versucht, wo es auch klappte, wenn ich den feedreader (feedfunc2.php) abgespeckt separat aufrief, aber nicht mit include (siehe screenshot). Da bricht meine Seite in der Darstellung einfach ab. Aber wahrscheinlich habe ich mit include auch was falschgemacht, muss mir das Regelwerk dafür noch mal genauer anschauen.

PHP-Code:
  <div class="border">

   
<a href="http://www.focus.de/politik/" target='_blank'> 
<img src="logos/focus.jpg" alt="FOCUS" style=" margin:3px 0px 0px -45px ; padding:0px;"/></a>


<ul>
 <?php
include 'feedfunc.php';


?>   
</ul>
     
    </div>


   <div class="border">

    
<a href="http://www.sueddeutsche.de/politik" target='_blank'> 
<img src="logos/suedd.jpg" alt="S&uuml;ddeutsche Zeitung" style="margin:3px 0px 0px -45px ; padding:0px;"/></a>
<ul>
<?php

include 'feedfunc2.php';
?>
</ul>
    </div>
Eine Klasse eingebunden habe ich auch noch nicht. Werde jetzt mal Dein neues Werk anschauen und damit Versuche unternehmen. Mal sehen, ob ich das irgendwie vernünftig eingebaut bekomme. Also bei function wüsste ich, wie ich die jeweilige feed-url jeweils übergebe...

Was ich auch nicht weiß, muss ich die ganzen ini-Sachen drin lassen, auch wenn ich das schon im Header meiner Ursprungsseite drinhabe? Wünsch mir Glück und Verstand...

Gruß
newbie1955
Miniaturansicht angehängter Grafiken
foreach - Schleifen und arrays-screenshot.jpg  
Mit Zitat antworten
  #48 (permalink)  
Alt 12-06-2013, 21:51
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
Was ich auch nicht weiß, muss ich die ganzen ini-Sachen drin lassen, auch wenn ich das schon im Header meiner Ursprungsseite drinhabe?
Das ist doch die "Ursprungsseite" bzw. der vollständige Quelltext einschließlich des Codes für die "Ursprungsseite", da brauchst Du doch nur den HTML-Quelltext noch entsprechend dem Layout Deiner restlichen Seiten zu ergänzen. Anderenfalls würdest Du ja zwei Header, zwei Bodys und zwei Footer in einer Seite haben. Diese Seite kannst Du doch mit HTML gestalten wie Du möchtest, nur die Reihenfolge muss eingehalten werden.

Klar werden da ein paar Zeilen mehr als bei einem Counter in eine HTML-Seite eingebunden, muss ja auch mehr übergeben werden. Oder man müsste jetzt extra noch eine Seite zum Editieren machen oder das Objekt von der Klasse gleich mit in der Datei von der Klasse erzeugen und dort dann halt editieren. Dadurch würde zwar die HTML-Seite noch leerer, doch der Aufwand lohnt ja nicht bzw. das bekommst Du auch fertig, so viel kann ich Dir wohl zutrauen.

Geändert von Melewo (12-06-2013 um 21:55 Uhr)
Mit Zitat antworten
  #49 (permalink)  
Alt 12-06-2013, 22:36
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Wahrscheinlich ...

drücke ich mich einfach verworren aus. Ich möchte Deinen ursprünglichen feedreader gerne von meiner Seite aus aufrufen, und dann mit meiner Seite ausgeben, weil ich ja insgesamt 20 feeds mit den jeweils zehn wichtigesten Schlagzeilen, Links und tolltips ausgebe (mit meiner css-datei), jeweils in border-Kästen. Das ist schon so gestaltet, da wäre es praktisch, ich könnte nach dem Einblenden der logos dann mit den Ul/li-Hinweisen alle feeds jeweils aufrufen, indem ich Deinen feedreader als function aufrufe, der ich nur die jeweilige Seite mitgeben muss. Das meinte ich.

Ich hatte aber schon mal, Deinen reader insgesamt als function betitelt aufzurufen, das hat nicht geklappt.
Schönen Dank und Gruß
newbie1955
Mit Zitat antworten
  #50 (permalink)  
Alt 12-06-2013, 23:32
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Ich verstehe aber nicht, wo Dein Problem liegt, mehrere Feeds damit zu laden. Was Du nicht benötigst, dass kannst Du doch ausblenden, dafür sind doch diese Editiermöglichkeiten vorhanden. Und wenn Du da noch das Datum oder so weghaben möchtest, das kannst Du doch mit bei den if-Statements einfach auf false setzen, nur biete ich das nicht von vornherein mit an.

PHP-Code:
$pub false;

if (
$nachricht->pubDate and $pub != false) { 
Und das "and $pub != false" brauchst Du doch nur bei den mit hineinschieben, die Du nicht haben möchtest und die nicht über die Einstellungen beim Editieren bereits auf false gesetzt werden können.
Wobei, zu viele gleichzeitige Request werden auch nicht gut sein. Doch diese drei hat er unter Localhost noch in 1.17s (onload: 1.24s) geladen.

PHP-Code:
<?php
ini_set
("user_agent""Mozilla/5.0 (compatible; Feedreader/PHP +".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"].")");
header("Content-Type: text/html; charset=UTF-8");

/*-- Die folgenden Werte sollten bei Bedarf editiert werden, $seite = "" muss editiert werden. -------------------*/

error_reporting(E_ALL);
define("SCHLIESSE"">");
define("MAXWEITE"250);
define("MAXHOEHE"250);
$formu  false;                  // Formular auf false setzen
$seite  "testfeed.rss";
$feedkl "feedklasse.php";
$feedfo "feedformular.php";
$feedst "feedstyle.css";

?>
<!DOCTYPE html>
<html>

<head>
<title>Feedreader</title>
<?php echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"".$feedst."\"".SCHLIESSE."\n"?>
</head>

<body>
<h1>Feedreader für RSS und Atom</h1>
<?php
if ($formu == true) {

    if (
file_exists($feedfo)) {include_once $feedfo;
    } else {echo 
"Formular konnte nicht geladen werden!\n";
    }
}
if (
file_exists($feedkl)) {

    include_once 
$feedkl;

    
$feedladen = new FeedKlasse();             // für jeden feed ein Objekt erzeugen
                                               // Die URI des zu ladenden Feeds direkt vorgeben
    
$feedladen->seite "http://www.tagesschau.de/xml/atom/";  
    
$feedladen->maxim 12;
    
$feedladen->descr false;                 // Alles was nicht ausgegeben werden soll auf false setzen
    
$feedladen->conte false;
    
$feedladen->summa false;
    
$feedladen->liefereFeedContent();
    
    
$feedladen = new FeedKlasse();
    
$feedladen->seite "http://www.heim-und-haustiere.de/themen/magazin.xml";
    
$feedladen->maxim 12;
    
$feedladen->descr false;
    
$feedladen->conte false;
    
$feedladen->summa false;
    
$feedladen->liefereFeedContent();

    
$feedladen = new FeedKlasse();
    
$feedladen->seite "http://www.spiegel.de/wirtschaft/index.rss";
    
$feedladen->maxim 12;
    
$feedladen->descr false;
    
$feedladen->conte false;
    
$feedladen->summa false;
    
$feedladen->liefereFeedContent();    
    

} else {echo 
$feedkl." konnte nicht geladen werden!\n";
}
?>
</div>
</body>
</html>
Mit Zitat antworten
  #51 (permalink)  
Alt 13-06-2013, 02:01
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Re

Versteh mich nicht falsch. Ich finde den feedreader sehr gut. Für mich wäre es nur gut, ihn als function einbinden zu können, weil ich ein fertiges laufendes html und css-gerüst habe, aus dem heraus ich gut den reader als function aufrufen könnte wenn möglich. Jeweils an den stellen wo die liste mit den feeds hinsoll. Zumal ich zwischendurch auch mal xpath benutze, wo der feed nix taugt. Aber ich kann natürlich auch mein html und css in dein script einbauen, wenn das mit der function nicht geht. Mal sehen, wie ich das hinkriege.

Gruß newbie1955
Mit Zitat antworten
  #52 (permalink)  
Alt 13-06-2013, 11:09
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Ja gut, doch so wie Du das versucht hattest, da bin ich auch etwas ins Schleudern gekommen, denn einfach nur eine neue Funktion über bereits vorhandene Funktionen stülpen und diese neue Funktion dann mehrfach aufrufen, so einfach geht das nicht. Ich dachte ja auch anfänglich so ähnlich, habe aber schnell meinen Irrweg bemerkt. Das Prinzip hätte dann in etwa wie folgt ausgesehen und die Fehlermeldung ab den zweiten Aufruf ergeben:

PHP-Code:
<?php

function foo($var) {

    function 
bar($string) {
    
        return 
$string." plus Testausgabe\n";
    } 
echo  
bar($var);
}

foo("Test");   // Test plus Testausgabe 
foo("Nest");   // Fatal error: Cannot redeclare bar()

?>
Wie löst man das? Weiß ich auch gerade nicht.
Außer mit der nächsten Variante, die ja funktioniert:

PHP-Code:
<?php

function bar($string) {

    return 
$string." plus Testausgabe\n";
}
function 
foo($var) {

    echo  
bar($var);
}

foo("Test");   // Test plus Testausgabe 
foo("Nest");   // Nest plus Testausgabe 

?>
Die einzelnen Objekte hättest Du auf der Seite auch dort platzieren können, wohin Du die haben möchtest, die brauchen ja nicht untereinander aufgereiht zu werden, doch nun habe ich das halt abgespeckt, nicht mit einer Klasse, doch dafür mit einer Hauptfunktion versehen.

Die "Ursprungsseite":

PHP-Code:
<?php
/* -----------------------------------------------------------------------------------------------------
 Diese Zeilen nur einmalig auf der Seite über dem Head, der Wert E_ALL kann nach Erprobung auf 0 gesetzt
 werden, vor ini_set darf kein HTML ausgegeben werden.
 -------------------------------------------------------------------------------------------------------
*/
ini_set("user_agent""Mozilla/5.0 (compatible; Feedreader/PHP +".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"].")");
header("Content-Type: text/html; charset=UTF-8");
error_reporting(E_ALL);
$feedfu "feedfunktionen.php";           // Seite mit den Funktionen
?>
<!DOCTYPE html>
<html>

<head>
<title>Feedreader</title>
<link rel="stylesheet" type="text/css" href="feedstyle.css">
</head>

<body>
<h1>Feedreader für RSS und Atom</h1>
<?php

// Nur einmalig auf der Seite ausgeben

if (file_exists($feedfu)) {include_once $feedfu;
} else {echo 
"Feedfunktionen konnte nicht geladen werden!\n";
}

// Wohin Du die einzelnen Ausgaben auf der Seite haben möchtest.

echo "<br>Tagesschau<br>\n";
verarbeiteFeed("http://www.tagesschau.de/xml/atom/");

echo 
"<br>Focus<br>\n";
verarbeiteFeed("http://rss2.focus.de/c/32191/f/443313/index.rss");

echo 
"<br>Spiegel<br>\n";
verarbeiteFeed("http://www.spiegel.de/wirtschaft/index.rss");

?>
</div>
</body>
</html>
Die feedfunktionen.php:

PHP-Code:
<?php

// Die Hauptfunktion

function verarbeiteFeed($urlfeed) {

    
$linkt "» Weiterlesen «";
    
$maxim 12;
    
$link  false;
    
$lesen false;
    
$start 0;

    if ((@
$data file_get_contents($urlfeed)) != false) {

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

        if (
$pxml->channel->item$lesen $pxml->channel->item;
        if (
$pxml->entry)         $lesen $pxml->entry;

        if (
$lesen != false) {

            foreach (
$lesen as $nachricht) {

                
/*-- Auswählen, ob Link für RSS $nachricht->link oder Atom $nachricht->link->attributes() --------*/

                
if ($nachricht->link) {

                    if ((string)
$nachricht->link) {
                        
$link $nachricht->link;
                    }
                    elseif (
$nachricht->link->attributes()) {
                        
$attr $nachricht->link->attributes();
                        
$link $attr["href"];
                    }
                }

                
/*-- Titel mit Link ------------------------------------------------------------------------------*/

                
if ($nachricht->title) {
                    echo 
"<h3><a href=\"".htmlspecialchars(filtereLinks($link), ENT_QUOTES)."\" target=\"_blank\">".
                    
htmlspecialchars(filtereHTML($nachricht->title), ENT_QUOTES)."</a></h3>\n";
                }

                if (
$link != false) {
                    echo 
"<a href=\"".htmlspecialchars(filtereLinks($link), ENT_QUOTES)."\" target=\"_blank\">".
                         
$linkt."</a><br>\n";
                }

                
/*-- Trennlinie zwischen den einzelnen Mitteilungen ----------------------------------------------*/

                
echo "<hr class=\"linie\">\n";
                
$start++;
                if (
$start == $maxim) {break;
                }
            }
        }
    } else { echo 
"<br".SCHLIESSE."Feed konnte nicht geladen werden!\n";
    }
}

// Die Nebenfunktionen

function wandleTags($daten) {

    
$daten str_replace("content:encoded""content"$daten);
    
$daten preg_replace_callback("/(&[#a-z0-9]+;)/",

        function(
$enti) {

            return 
htmlspecialchars(mb_convert_encoding($enti[1], "UTF-8""HTML-ENTITIES"));
        }, 
$daten);

    if (
strpos($daten"><item>") !== false) {

        
$eing  = array(

            
"><item>"        => ">\r\n<item>",
            
"><title>"       => ">\r\n<title>",
            
"><link>"        => ">\r\n<link>",
            
"><description>" => ">\r\n<description>",
            
"><content>"     => ">\r\n<content>",
            
"><summary>>"    => ">\r\n<summary>>",
            
"><enclosure>"   => ">\r\n<enclosure>",
            
"><pubDate>"     => ">\r\n<pubDate>",
            
"><updated>"     => ">\r\n<updated>",
            
"><published>"   => ">\r\n<published",
            
"><author>"      => ">\r\n<author>",
            
"><creator>"     => ">\r\n<creator>"
        
);
        
$daten strtr($daten$eing);
    }
    return 
$daten;
}
function 
filtereHTML($daten) {

    
$daten preg_replace("/<.+?>/is"""$daten);
    return 
$daten;
}
function 
filtereLinks($daten) {

    
$daten preg_replace("/[^a-z0-9_\/=.:;&?-]/is"""$daten);
    return 
$daten;
}

?>
Nun hast Du genug Stoff und Beispiele, um Dich damit zu beschäftigen, Dich damit auseinander zu setzen und Schritt für Schritt daraus ein wenig zu lernen.


Edit: Jetzt habe ich doch noch eine andere Lösung gefunden, so hätte es auch ohne Fehlermeldungen funktioniert. Nun ist es egal, die andere Lösung ist wohl einfacher, da ja nicht immer function_exists abgefragt werden muss.

PHP-Code:
<?php

function foo($var) {

    if(!
function_exists("bar")) {

        function 
bar($string) {

            return 
$string." plus Testausgabe\n";
        }
    }
echo  
bar($var);
}

foo("Test");   // Test plus Testausgabe
foo("Nest");   // Nest plus Testausgabe
foo("Plus");   // Plus plus Testausgabe
?>
Und bevor ich es vergesse, falls Du mal die dickere Variante mit der Klasse und den Objekten verwenden solltest, das war gestern nur ein schnelles Beispiel mit den drei Objekten. Besserer und übersichtlicher wäre es dann wohl, für jedes Objekt eine andere Variable zu benutzen, wie

PHP-Code:
$feed1 = new FeedKlasse();
$feed1->seite "...";

$feed2 = new FeedKlasse();
$feed2->seite "...";

$feed3 = new FeedKlasse();
$feed3->seite "..."
um kein Durcheinander zu erzeugen.

Geändert von Melewo (13-06-2013 um 12:07 Uhr)
Mit Zitat antworten
  #53 (permalink)  
Alt 13-06-2013, 20:31
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Danke danke danke

.. Du hast mir sehr geholfen. Bin schon dabei, alles anzupassen in Sachen summaray/description und tooltip-Ausgabe. Aber es läuft bisher sehr gut.
Die Seiten, die einen schrottigen feed anbieten, werde ich mit xpath verwurschten, da muss ich dann nur noch eine Möglichkeit finden, auch die description (die ja nicht description heißt) auf der Seite mit xpath zu finden.

Eine Frage: Hast Du eine Ahnung, warum der feed der Deutschen Welle aus der Reihe tanzt? Ist rdf nun wieder ein ganz anderes Format?

Deutsche Welle: DW-WORLD.DE Themen des Tages

Gruß newbie1955
Mit Zitat antworten
  #54 (permalink)  
Alt 13-06-2013, 21:46
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Ist nicht neu, den Begriff kenne ich schon länger, nur kommt man mit den Kürzeln zuweilen durcheinander. So wie ich das in dem Beispiel sehe, RDF enthält keinen Content, sondern nur Titel, Description und Link, wobei der Link dann auf die Seite verweist, wo der Content zu finden ist. Also genau so, wie ich mir einen kurzen und knappen Feed vorstellen würde. Doch diese Erklärung war gewiss Milchmädchenhaft.

Hier scheint es besser erklärt zu sein:

http://www.iwi-iuk.org/seminarNotes/2/rdf-reader-v2.pdf

Zitat:
RDF beschränkt sich nicht auf die Beschreibung von Objekten, die es irgendwo im Web gibt. RDF beschränkt lediglich den Zeichenvorrat für Objektnamen auf URI und unterwirft den Zeichenvorrat den in RFC3986 gemachten syntaktischen Bedingungen.
Es liest sich aber nicht alles so abschreckend. Die Syntax ist auch beschrieben, nun weiß ich doch gleich, wo die WordPress-Feeds ihr dc vor creator herhaben. Es wird somit überall mehr oder weniger gemischt. Aber wenn Du Dir denkst, ich lese mir jetzt die 80 Seiten durch, das kannst Du ja machen und mir dann davon eine kurze Zusammenfassung geben.
Mit Zitat antworten
  #55 (permalink)  
Alt 13-06-2013, 21:56
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Nee,

habe das vorher schon mal auf englisch gefunden, aber auch nicht besser verstanden. AUf Seite 54 ist zwar der für einen Parser relevante Teil des rdfs erwähnt, hilft aber beim Parsen auch nicht weiter. Hatte es intuitiv schon mit

PHP-Code:
        if ($pxml->channel->rdf)         $lesen $pxml->channel->rdf
aber ohne Ergebnis, dann muss ich die Seite wohl direkt mit xpath einlesen oder für die Deutsche Welle wie bisher den Magpieparser nehmen.

Gruß
newbie1955
Mit Zitat antworten
  #56 (permalink)  
Alt 13-06-2013, 22:24
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
PHP-Code:
        if ($pxml->channel->rdf)         $lesen $pxml->channel->rdf
Sag einmal, habe ich Dir denn überhaupt noch nichts beigebracht?
Channel schließt doch vor item, da kannst Du doch nicht über channel auf item zugreifen wollen. So schwer ist das doch wohl nicht zu erkennen, wie die Elemente verschachtelt sind, wenn Du mal einen Blick in den Quelltext werfen würdest. Habe es nicht probiert, doch da solltest Du doch direkt auf item zugreifen können.

Sehe gerade, bei selfhtml wird es auf den Punkt gebracht:

Zitat:
RDF: Resource Description Framework
RDF ist eine Sprache zur Beschreibung von Metadaten für Dokumente.
SELFHTML: XML / Einführung in XML

Doch der Rest ist in der PDF besser beschrieben.
Mit Zitat antworten
  #57 (permalink)  
Alt 13-06-2013, 22:31
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard na,

nun ma nich gleich schimpfen hier...
doch, den Quelltext habe ich mir angeschaut, deshalb bin ich ja darauf gekommen.

habe aber nicht verstanden, warum ich mit Deinem feedreader nicht an title und link und description komme und habe einfach mal was versucht.

Entschuldige, sehe gerade, dass die aber auch noch einen Atom-feed anbieten.

Geändert von newbie1955 (13-06-2013 um 22:38 Uhr)
Mit Zitat antworten
  #58 (permalink)  
Alt 13-06-2013, 22:43
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
und habe einfach mal was versucht.
Ja aber warum versuchst Du es dann nicht gleich in der Reihenfolge der Elemente?
Brauchst doch nur die zwei Zeilen in der Hauptfunktion um eine dritte Zeile ergänzen:

PHP-Code:
        if ($pxml->channel->item$lesen $pxml->channel->item;
        if (
$pxml->entry)         $lesen $pxml->entry;
        if (
$pxml->item)          $lesen $pxml->item
Habe jetzt nicht alles gelesen, nur was mich betreffend der Elemente interessierte, doch diesen Satz (unten auf Seite 40 von der PDF) den fand ich bisher am schönsten. Der bringt doch viel zum Ausdruck:

Zitat:
Das bedeutet: Jede Klasse ist Element der Klasse aller RDF Klassen! Insbesondere ist die Klasse aller Klassen eine Klasse.
Also, RSS in der Versionen 0.9 und in der Versionen 1.0 beruhten noch auf RDF, wobei es sich bei diesen Feed wohl um RSS 1.0 handelt. Doch der Nachfolger RSS 2.0 ist wesentlich weiter verbreitet.

Geändert von Melewo (14-06-2013 um 03:10 Uhr)
Mit Zitat antworten
  #59 (permalink)  
Alt 14-06-2013, 16:28
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Tja,

ich dachte, ich müsste bei der Abfrage auch irgendwie noch signalisieren, dass es sich um ein rdf-Format handelt. Aber so funktioniert es jetzt. Merke nur, dass die Ladezeit der Seite sich beinahe verdoppelt, weil ich jetzt die description/summary hole und als tooltip ausgebe. Naja, vielleicht biete ich zwei Varianten an, mal sehen. und dann muss ich noch sehen wie ich die Medien mit tooltip ausstatte, die keinen guten feed haben und die ich mit xpath abfrage, sonst ist alles Bingo. Der Satz mit den Klassen ist "Klasse" - wenn das keine Poesie ist.

Studiere jetzt das Buch von Claudia Unkelbach, ich finde es gut, auch wenn es von Fehlern wimmelt.

Gruß
newbie1955
Mit Zitat antworten
  #60 (permalink)  
Alt 14-06-2013, 17:48
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Doch noch ne Frage

Ich habe ja noch die eher blöden Medien, die wie gesagt keine oder schlechte feeds rausgeben. Da habe ich beim NDR folgendes gemacht:

PHP-Code:
<?php
$data 
file_get_contents('http://www.ndr.de/info/nachrichten287.html');  
$doc = new DOMDocument(); 
$doc->loadHTML($data); 
$result $doc->getElementsByTagName("h2"); 

$zaehler 1;

foreach (
$result as $node

if ((
$zaehler <= 10)&& ($node->nodeValue !== '') && ($node->nodeValue !== NULL)){

         echo 
'<li><a href="http://www.ndr.de/info/nachrichten287.html" target="_blank" >' 
                   
$node->nodeValue '</a></li>';
$zaehler++;

}
Jetzt habe ich versucht, über
PHP-Code:
 $doc->getElementsByTagName("p"
auch noch an den Meldungstext zu kommen, der immer hinter <p> steckt, das funktionierte so aber nicht. Rätst Du mir dazu, es lieber mit xpath zu machen? Zumal ich ohnehin nicht weiß wie man 2 Tags gleichzeitig abruft und in einer Schleife ausgibt?

Gruß
newbie1955
P.S. zur Rechtsfrage übrigens: ich habe mit dem NDR telefoniert, die sagen, für einen nichtregionalen feed hätten sie keine Zeit, den sollte ich mir selbst basteln.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
xpath array foreach


LinkBacks (?)
LinkBack to this Thread: https://www.php-resource.de/forum/php-developer-forum/104038-foreach-schleifen-und-arrays.html
Erstellt von For Type Datum
RSS Feed einbinden This thread Refback 29-09-2013 21:09

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
foreach schleifen disabled der_meier_hans PHP Developer Forum 1 06-06-2008 17:37
Schleifen, Form und Arrays QWerner PHP Developer Forum 9 16-06-2006 05:16
Problem mit Arrays und Schleifen mobo81 PHP Developer Forum 3 14-03-2006 19:07
[PHP5] Problem mit foreach-schleifen ausgaben scriptmaus Projekthilfe 12 07-12-2005 14:43
foreach() und zwei arrays Maranello-550 PHP Developer Forum 5 07-11-2003 21:43

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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

Formmailer v1.6.1 Bootstrap 4

Formmailer v1.6.1 Bootstrap wurde extra für Bootstrap entwickelt. Mit Bootstrap kann man schnell und einfach kleine oder große Projekte entwickeln, die auf Geräten in allen erdenklichen Formen funktionieren.

18.12.2018 arne-home | Kategorie: PHP/ Formular
HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:35 Uhr.