Seite 1 von 1

Ergebnis eines Array nicht mit Echo ausgeben?

Verfasst: 27.07.2006, 16:40
von imothop
Getreu nach dem Motto, wen nix mehr geht, geh nach Abakus :D belästige ich euch mal mit einem PHP Problem. Dazu muß ich sagen das ich blutiger Anfänger in Sachen PHP bin und mich gerade erst in die Grundlagen versuche einzuarbeiten. Jetzt taucht gerade ein Problem auf, bei dem ich absolut nicht mehr weiter komme.

Ich möchte in einem bestehenden Script eine Funktion einfügen mit der ich RSS Feeds auslesen und ausgeben kann. Hierfür habe ich eine Funktion zusätzlich in das Script eingefügt, was auch ohne Problme funktioniert.

Probleme habe ich nun mit der Ausgabe, da mein Script auf einem Template System basiert.

Folgendes ist bis hierhin kein Problem.

Code: Alles auswählen

function rss() {

require ('http://www.url.de/reader/rss_fetch.inc');
$rss = fetch_rss('http://www.url.de/bericht/feed/');

foreach ($rss->items as $item ) {
	$title = $item[title];
	$url   = $item[link];
	$desc = $item[description];
	
	echo "<a href=$url>$title</a><br>$desc<br><br>";
	&#125;
	&#125;
Das funktioniert einwandfrei und ich kann mit Echo die gewünschten Daten ausgeben. Nur will ich genau das nicht machen.

Ich möchte die bisherige Ausgabe mit Echo in eine Variable speichern und den Inhalt der Variable dann durch einen Platzhalter im Template ersetzen. Das Ersetzen erfolgt dann durch:

Code: Alles auswählen

$tpl = str_replace&#40;"<%platzhalter%>", $ausgabe, $tpl&#41;;
Und das bekomme ich einfach nicht hin. Es muß doch eine Möglichkeit geben, dass ich das Ergebnis von foreach nicht direkt mit Echo ausgebe, sondern erst einen Zwischenschritt einlege und die Daten erstmal ablege? Oder habe ich hier einen Denkfehler?

Tausend Dank im Voraus für eure Hilfe.

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 27.07.2006, 16:50
von busTa
Kannst eine Variable immer weiter ergänzen:

Code: Alles auswählen

function rss&#40;&#41; &#123;

require &#40;'http&#58;//www.url.de/reader/rss_fetch.inc'&#41;;
$rss = fetch_rss&#40;'http&#58;//www.url.de/bericht/feed/'&#41;;
$ausgabe = '';

foreach &#40;$rss->items as $item &#41; &#123;
   $title = $item&#91;title&#93;;
   $url   = $item&#91;link&#93;;
   $desc = $item&#91;description&#93;;
   
   $ausgabe .=  "<a href=$url>$title</a><br>$desc<br><br>";
   &#125;
   &#125; 

Verfasst: 27.07.2006, 16:54
von Southmedia
foreach wird ja mehrmals durchlaufen, also müsstest du die Daten in einem Array speichern oder die Daten aneinanderhängen. Willst du am Ende etwas ala

Code: Alles auswählen

<a href=$url>$title</a><br>$desc<br><br>
<a href=$url>$title</a><br>$desc<br><br>
<a href=$url>$title</a><br>$desc<br><br>
<a href=$url>$title</a><br>$desc<br><br>
rausbekommen?

Verfasst: 27.07.2006, 16:58
von imothop
Southmedia hat geschrieben:foreach wird ja mehrmals durchlaufen, also müsstest du die Daten in einem Array speichern oder die Daten aneinanderhängen. Willst du am Ende etwas ala

Code: Alles auswählen

<a href=$url>$title</a><br>$desc<br><br>
<a href=$url>$title</a><br>$desc<br><br>
<a href=$url>$title</a><br>$desc<br><br>
<a href=$url>$title</a><br>$desc<br><br>
rausbekommen?
Ja, so sollte das ungefähr aussehen. So sieht es auch aus, wenn ich es mit Echo ausgebe.

Das Problem ist halt das ich es nicht direkt mit Echo ausgeben kann, weil ich für die Ausgabe einen Platzhalter im Template benötige.

Verfasst: 27.07.2006, 17:00
von Southmedia
Dann hat busta während ich getippt habe schön die Lösung geliefert :)

Verfasst: 27.07.2006, 17:07
von imothop
Erstmal Danke an auch beide für die Hilfe!

Irgendwo muß ich dann aber doch einen Fehler haben, weil im Template keine Ausgabe erfolgt, wenn ich den Platzhalter einsetze und busTas Lösung versuche.

Ich probiere es jetzt erstmal mit dem Lösungsansatz weiter und suche mal nach einem Fehler.

EDIT

Es klappt doch, ich hatte es nur nicht an der richtigen Stelle im Script eingefügt. Nochmal tausend Dank euch beiden.