Ja,
Danke für die "Unterrichtsstunde". Werde mir das genau anschauen, functions habe ich ja schon eingesetzt, aber beispielweise weiß ich noch nicht, ob ich auch mehrere Variable übergeben kann usw.
Gruß
newbie1955
foreach - Schleifen und arrays
Collapse
X
-
Originally posted by newbie1955 View Postich glaube mit Klassen muss ich mich noch mal beschäftigen
Du bist hier:
PHP Code:<?php
$variable = " Welt<br>\n";
echo "Hallo".$variable;
?>
PHP Code:<?php
function meineBegruessung($uebergabe) {
return $uebergabe." Welt<br>\n";
}
echo meineBegruessung("Hallo");
?>
PHP Code:
<?php
class HalloKlasse {
public $eigenschaft1;
private $eigenschaft2 = "Welt";
public function meineBegruessung() {
return $this->eigenschaft1." ".$this->eigenschaft2."<br>\n";
}
}
$erstelle = new HalloKlasse();
$erstelle->eigenschaft1 = "Hallo";
echo $erstelle->meineBegruessung();
?>
Hallo Welt
Hallo Welt
Hallo Welt
Leave a comment:
-
Also,
ich glaube mit Klassen muss ich mich noch mal beschäftigen, werde mal hier
PHP Class Tutorial - PHP Klassen erklärt ein wenig studieren, denn sonst kapiere ich den Unterschied zwischen "in" und "außerhalb" der Klasse auch nicht so recht.
Jetzt hake ich noch am  -Problem rum.
Gruß
newbie1955
Leave a comment:
-
Originally posted by newbie1955 View PostEigentlich muss es doch aber möglich sein, ihm zu sagen: "wenn da nix drin ist, überspring ihn halt und zähle ihn nicht mit."
PHP Code:if (strlen($lesen[0]->title) > 0 or strlen($lesen[1]->title) > 0) {
foreach ($lesen as $nachricht) {
if ($nachricht != false) {
Edit: Du kannst stattdessen aber auch bestimmen, dass zum Beispiel alle item übersprungen werden, die keinen Titel enthalten.
PHP Code:if (strlen($lesen[0]->title) > 0 or strlen($lesen[1]->title) > 0) {
foreach ($lesen as $nachricht) {
if ($nachricht->title != false) {
PHP Code:SimpleXMLElement Object
(
[title] => SimpleXMLElement Object
(
)
[description] => SimpleXMLElement Object
(
)
)
PHP Code:if ($nachricht != false) {
PHP Code:if ($nachricht->title != false) {
PHP Code:if ($nachricht != false) {
Last edited by Melewo; 15-06-2013, 15:40.
Leave a comment:
-
Danke
für Deine Mühe. Ich hatte auch etwas versucht mit "continue" und Zaehler hochsetzen, damit er bei fehlendem Inhalt einfach den nächsten item probiert, leider hat das nicht geklappt (leider ohne dass ich kapiert hätte, wieso.)
So wie Du es jetzt geschrieben hat, funktioniert das erstmal, muss nur sehen, dass ich in der Regel nur 10 feeds bekomme, evtl. könnte ich ja die Zahl der gewünschten feeds ebenso aus der Seite an die Feedfunktion.php übergeben wie ich die url übergebe.
Eigentlich muss es doch aber möglich sein, ihm zu sagen: "wenn da nix drin ist, überspring ihn halt und zähle ihn nicht mit."
Will Dich nicht von der Arbeit abhalten, antworte halt, wenn Du Zeit hast. Ich muss da sowieso noch ewig dran rumfummeln wg. der   und sonstiger description-Feingestaltung.
Gruß
newbieLast edited by newbie1955; 15-06-2013, 10:24.
Leave a comment:
-
Originally posted by newbie1955 View Postaber da sind noch mehr vermurkste items drin, deshalb bricht er dann nach dem 8. ab.
PHP Code:if ($lesen != false) {
PHP Code:if (strlen($lesen[0]->title) > 0 or strlen($lesen[1]->title) > 0) {
Wollte mich nie so lange mit dem Script beschäftigen, irgendwie müsste ich mich auch noch um ein paar andere Dinge kümmern. Fehlerkontrolle ist ja gut, umso ausgereifter wird das Script ja. Nur ich wüsste nicht was ich mit dem Ding anfangen könnte, außer so wie das alte Script zum Download anzubieten. Und einige wichtigere Dinge hätte ich schon noch zu tun. Doch wenn ich dann weiß, dieses oder jenes könnte noch verbessert werden, dann lässt mich das zuweilen auch keine Ruhe.
Dabei liegen die Fehler ja eigentlich nicht am Script, sondern an den fehlerhaften Feeds. Letztendlich ist es so wie mit den Browsern, die versuchen auch jede HTML-Seite mit X oder mehr Fehlern noch vernünftig darzustellen.
Leave a comment:
-
Habe
jetzt erstmal $lesen[1] geprüft und dann geht es, aber da sind noch mehr vermurkste items drin, deshalb bricht er dann nach dem 8. ab. werde mal noch ein wenig rumprobieren.
Eine Idee zum  -Eliminieren?
Gruß
newebie1955
Leave a comment:
-
Originally posted by newbie1955 View Postmüsste ich wohl versuchen, den ersten item zu überspringen?
PHP Code:if ($lesen != false) {
foreach ($lesen as $nachricht) {
PHP Code:if ($lesen[0] != false and $lesen[1] != false) {
PHP Code:if ($lesen[1] != false) {
foreach ($lesen as $nachricht) {
Leave a comment:
-
Dann
müsste ich wohl versuchen, den ersten item zu überspringen?
Außerdem versuche ich gerade, aus manchen Descriptions/Summarys usw. noch die überflüssigen Zeichen rauszubekommen. Die Süddeutsche hat zum Beispiel immer zum Schluss ein       dran, das ich mit trim und str_replace auch nicht wegbekomme.
PHP Code:$desc = ($nachricht->description);
$desc = trim($desc);
str_replace(" ", "", $desc);
Vielleicht werde ich einfach bei jeder Description nach zwei Sätzen Schluss machen, mehr muss da ja sowieso nicht ausgegeben werden. Zumal sowieso bei manchen noch zusätzliche Teasing-Infos ausgegeben werde, die ich nicht brauche (Mehr dazu....)...
Zuz Validität, da muss ich wohl auf HTML geprüft haben...Last edited by newbie1955; 14-06-2013, 21:57.
Leave a comment:
-
Originally posted by newbie1955 View PostBei meinem feedcheck kam ein well-formed heraus.
Bei mir war alles gelb, habe es angehängt.
Kann eigentlich nur daran liegen, dass der mit einem leeren Item beginnt. Einiges an Fehlern schluckt und verarbeitet der ja nun schon, doch halt nicht alle Fehler, die andere noch schlucken würden. Hier mal eine Ausgabe mit print_r().
PHP Code:[item] => Array
(
[0] => SimpleXMLElement Object
(
[title] => SimpleXMLElement Object
(
)
[description] => SimpleXMLElement Object
(
)
)
[1] => SimpleXMLElement Object
(
[title] => A...
[description] => S...
[link] => http: ...
)
[2] => SimpleXMLElement Object
(
[title] => A...
[description] => L...
[link] => http: ...
)
PHP Code:[item] => Array
(
[0] => SimpleXMLElement Object
(
[title] => A...
[description] => S...
[link] => http: ...
)
[1] => SimpleXMLElement Object
(
[title] => A...
[description] => L...
[link] => http: ...
)
[2] => SimpleXMLElement Object
(
[title] => S...
[description] => 1....
[link] => http: ...
)
Attached FilesLast edited by Melewo; 14-06-2013, 20:40.
Leave a comment:
-
Habe ich doch auch überprüft
ganz blöd bin ich ja auch nicht. Bei meinem feedcheck kam ein well-formed heraus. (siehe screenshot unten)Attached Files
Leave a comment:
-
Mal abgesehen davon, dass der Feed invalide ist, was Du ja mit
W3C Feed Validation Service, for Atom and RSS
überprüfen kannst, sehe ich einen möglichen Grund darin, dass im ersten Item nichts enthalten ist. Möglich, dass das Script sich daran verschluckt und dann die restlichen nicht mehr ausgibt.
HTML Code:<?xml version="1.0" encoding="ISO-8859-1"?> <rss version="2.0"> <channel> <title><![CDATA[...]]></title> <link>http://www....</link> <description/> <language>Deutsch</language> <copyright>copyright</copyright> <webMaster>webmaster</webMaster> <ttl>300000</ttl> <item> <title/> <description/> </item>
Das andere muss ich erst suchen.
Leave a comment:
-
Also
an die Zusage für ein Tutorial kann ich mich nicht erinnern. Das würde wohl noch ein paar Jahre dauern.
Welche allgemeine Frage meinst Du? Also ich glaube, diese Baumstruktur habe ich schon verstanden - auch wenn ich manchmal beim Durchlesen eines Quelltextes nicht so richtig sehe, wo ein node endet und der nächste anfängt, vor allem, wenn nicht richtig geschlossen wird. Ich komme ja auch inzwischen an alle Werte ran, Naja, wer viel dumme Fragen fragt, muss sich dann ja auch den Spott über Rentner-PHPler anhören...(ich will mir ja nix beweisen - und im Alter wird man angeblich wieder wie ein Kid)
Aber mal was anderes, hast Du eine Ahnung, warum der heute-feed nicht mit Deinem feedreader nicht funktioniert? Ist doch rss 2.0?
<![CDATA[ZDFheute | Nachrichten - Startseite]]>
Also beim Betrachten des Quelltextes fällt mir nix Störendes auf.
Gruß newbie1955
P.S. ich glaube gern, dass Kleinverlage sich keine Lektoren leisten können, ich frage mich nur, ob die Autorin dankbar ist für Hinweise auf Druck- und sonstige Fehler (für die nächste Auflage) oder nicht.
Das mit dem NDR habe ich so gemacht:
PHP Code:$data = file_get_contents('http://www.ndr.de/info/nachrichten287.html');
$doc = new DOMDocument();
$doc->loadHTML($data);
$zaehler = 0;
$descs = $doc->getElementsByTagName("p");
foreach ($descs as $node2)
{
if (($zaehler <= 10)&& ($node2->nodeValue !== '') && ($node2->nodeValue !== NULL)){
$array[$zaehler] = $node2->nodeValue;
$zaehler++;
}
}
$result = $doc->getElementsByTagName("h2");
$zaehler = 0;
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" title ="' . $array[$zaehler].'" >'.
$node->nodeValue . '</a></li>';
$zaehler++;
}
}
?>
Last edited by newbie1955; 14-06-2013, 19:04.
Leave a comment:
-
Originally posted by newbie1955 View PostZumal ich ohnehin nicht weiß wie man 2 Tags gleichzeitig abruft und in einer Schleife ausgibt?
So weit wie Du stecke ich da nicht in der Materie. Habe zwar etwas probiert, doch für mich geht so etwas bei so übersichtlichen Seiten immer noch am schnellsten, wenn ich da selber einen Ausdruck schreibe.
PHP Code:<?php
$data = file_get_contents('http://www.ndr.de/info/nachrichten287.html');
function sucheInhalt($daten) {
if (preg_match_all("/<h2>(.+?)<\/h2>.+?<p>(.+?)<\/p>/si", $daten, $fund)){
$inarr = count($fund[1]);
echo "<ul>\n";
for ($i = 0; $i < $inarr; $i++) {
echo "<li><a href=\"http://www.ndr.de/info/nachrichten287.html\" target=\"_blank\">".htmlspecialchars($fund[1][$i], ENT_QUOTES)."</a><br>\n".
htmlspecialchars($fund[2][$i], ENT_QUOTES)."</li>\n";
}
echo "</ul>\n";
}
}
sucheInhalt($data);
?>Originally posted by newbie1955 View PostStudiere jetzt das Buch von Claudia Unkelbach, ich finde es gut, auch wenn es von Fehlern wimmelt.
Zur Frage mal ganz allgemein. Habe heute schon an eine Zeichnung mit einem Baum gedacht. Eigentlich gibt es da schon einige, doch so in "PHP für Rentner" weiß ich jetzt nicht.
Jedenfalls so, dass jeder Rentner das versteht, gleich ob HTML, XHTML oder XML, ob mit DOM oder XPath oder mit SimpleXML, wer nicht bis zum Herbst warten will, bis die Nüsse von alleine vom Baum fallen, muss sich zumindest eine Leiter an den Baum stellen, bis zum nächsten Ast klettern, sich den Zweig greifen, die erste und zweite Nuss pflücken und deren Schale entfern, bevor er an den Kern gelangt. Wenn er die Reihenfolge nicht einhält, fällt er vom Baum oder die Schale bleibt ihm im Hals stecken, in jedem Fall muss eine Error-Mitteilung an den Notdienst übermittelt werden. Also:
Stamm->Ast->Zweig->Früchte->Frucht->Fruchtschale->Kern
HTML Code:<wurzel> <spezies>lateinischer Name</spezies> <subspezies>lateinischer Name</subspezies> <material>Biomasse Holz</material> <stamm> <ast> <zweig> <fruechte> <frucht="reif"> <fruchtschale> <inhalt>Walnusskern</inhalt> </fruchtschale> </frucht> <frucht="unreif"> <fruchtschale> <inhalt>Walnusskern</inhalt> </fruchtschale> </frucht> </fruechte> </zweig> </ast> </stamm> </wurzel>
Früchte->Frucht->Fruchtschale->Kern
HTML Code:<wurzel> <spezies>lateinischer Name</spezies> <subspezies>lateinischer Name</subspezies> <material>Biomasse Holz</material> <fruechte> <frucht="reif"> <fruchtschale> <inhalt>Walnusskern</inhalt> </fruchtschale> </frucht> <frucht="unreif"> <fruchtschale> <inhalt>Walnusskern</inhalt> </fruchtschale> </frucht> </fruechte> </wurzel>
Und wenn Du es auf diese Art und Weise nicht verstehst, dann kapituliere ich.Last edited by Melewo; 14-06-2013, 18:42.
Leave a comment:
-
Geschafft
habe erfolgreich meine "array-Experimente" vertieft und den <p>-tag erstmal in ein array gepackt und dann als title ausgegeben. war gar nicht so schwer.
Gruß
newbie1955
Leave a comment:
Leave a comment: