WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 21.01.2006, 15:50   #1
Alter
Sack
 
Benutzerbild von Alter
 
Registriert seit: 19.07.2001
Alter: 53
Beiträge: 1.962

Mein Computer

Standard PHP-Script für RSS/RDF ändern

Ich möchte die Datei portal_heise_ticker.php (aus dem IntroPortal-Mod für phpBB2) ändern, um auch andere RDF oder RSS Feeds anzeigen zu können.

In der heise-rdf (http://www.heise.de/newsticker/heise.rdf) gibt es diese Struktur:
- <item>
<title>...TITEL...</title>
<link>...LINK...</link>
</item>

Im WCM-Backend (http://www.wcm.at/backend.php?id=0) gibt es nun aber diese Struktur:
- <item>
<title>...TITEL...</title>
<link>...LINK...</link>
<description>...TEXT...</description>
</item>

Das Heise-Script sieht so aus:
PHP-Code:
<?PHP

$fcontents 
join (''file ('http://www.heise.de/newsticker/heise.rdf')); 
$fcontents str_replace ("</item>"""$fcontents); 
$fcontents str_replace ("</link>"""$fcontents); 
$splices explode ("<item>"$fcontents); 
for (
$i 1$i count($splices); $i++){ 
$link explode("<link>",$splices[$i]); 
$link[1] = strip_tags($link[1]); 
$headline str_replace ("<title>""<a href=\"" trim($link[1]) . "\" target=\"_blank\" class=\"heiseheadline\">"$splices[$i]); 
$headline str_replace ("</title>""</a>"$headline); 
$headline explode ("<link>"$headline); 
$headline $headline[0]; 
print 
$headline "<img src=\"1.gif\" height=20 width=1 align=top>
"


 
?>
Wenn ich hier nur den Link zur rdf ändere, kann ich zwar die Headlines ausgeben , also den <title>, doch der Text aus der <description> wird an den <link> einfach angehängt, deshalb funktionieren die Links zu den Artikeln nicht.

Ich kann zu wenig PHP, um die nötigen Änderungen durchzuführen. Kann mir jemand helfen?
Danke!
____________________________________
www.boinc.at
Alter ist offline   Mit Zitat antworten
Alt 21.01.2006, 19:17   #2
Alter
Sack
 
Benutzerbild von Alter
 
Registriert seit: 19.07.2001
Alter: 53
Beiträge: 1.962

Mein Computer

Standard

Zur weiteren Erklärung:
Die Headlines werden korrekt ausgegeben, die Links zu dem jeweiligen Artikel enthalten aber auch die Beschreibung - sieht dann so aus:

http://www.wcm.at/story.php?id=9273 Die Apple Computer Inc. hat im ersten Quartal des laufenden Geschäftsjahres 2005/06 dank der beispiellosen Nachfrage nach seine iPod-Musikplayern Rekordergebnisse verbucht. Das Geschäft mit den Macintosh-Desktops und -Laptops entwickelte sich ebenfalls gut. In den Apple-Einzelhandelsgeschäften wurden erstmals mehr als eine Milliarde Dollar (mehr als 825 Mio. Euro) umgesetzt.

Ich habe noch nicht herausgefunden, wie ich die Beschreibung aus dem Link wegbekomme, also alles, was in der backend.php zwischen diesen Tags steht: <description></description>
____________________________________
www.boinc.at
Alter ist offline   Mit Zitat antworten
Alt 22.01.2006, 11:12   #3
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

Schau dir einfach an was das php Skript macht:
Code:
Eingabe:
$fcontents:
-----
<item>
  <title>Der 1.Titel</title>
  <link>link_zum_1_titel</link>
  <description>bla</description>
</item>

<item>
  <title>Der 2.Titel</title>
  <link>link_zum_2_titel</link>
  <description>bla</description>
</item>
-----
$fcontents = str_replace ("</item>", "", $fcontents);
$fcontents = str_replace ("</link>", "", $fcontents); 

$fcontents:
----
<item>
  <title>Der 1.Titel</title>
  <link>link_zum_1_titel
  <description>bla</description>

<item>
  <title>Der 2.Titel</title>
  <link>link_zum_2_titel
  <description>bla</description>
----
$splices = explode ("<item>", $fcontents); 
----
$splices[0]:
----
<title>Der 1.Titel</title>
  <link>link_zum_1_titel
  <description>bla</description>
$splices[1]:
----
  <title>Der 2.Titel</title>
  <link>link_zum_2_titel
  <description>bla</description>
----
$link = explode("<link>",$splices[0]); 
----
$link[0]:
  <title>Der 2.Titel</title>
$link[1]:
link_zum_1_titel
  <description>bla</description>
Hier liegt also das Problem.
Lösen kannst du's auf verschiedene Arten:
1.) Einfach alles was zwischen <description> und </description> steht löschen. Sollte so funktionieren:
Code:
$fcontents = preg_replace ("<description>.*<\/description>", "", $fcontents);
2.) Den Text aus der Description in $description speichern:
statt:
Code:
$link = explode("<link>",$splices[$i]);
folgendes:
Code:
$description = explode("<description>",$splices[$i]);
$description[1] = strip_tags($description[1]);
$link = explode("<link>", $description[0]);
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona)
Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing.
\"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra)
jak ist offline   Mit Zitat antworten
Alt 22.01.2006, 20:49   #4
Alter
Sack
 
Benutzerbild von Alter
 
Registriert seit: 19.07.2001
Alter: 53
Beiträge: 1.962

Mein Computer

Standard

Spitze, danke! Ich probiere das gleich.

Edit:
So, hab beide Vorschläge probiert, mit dem zweiten Code-Schnipsel haut es hin, die erste Variante funktioniert so leider nicht.

Hast mir echt geholfen, vielen Dank!
____________________________________
www.boinc.at
Alter ist offline   Mit Zitat antworten
Alt 23.01.2006, 19:09   #5
Alter
Sack
 
Benutzerbild von Alter
 
Registriert seit: 19.07.2001
Alter: 53
Beiträge: 1.962

Mein Computer

Standard

Jetzt habe ich dank jak's Hilfe die Headlines mit den richtigen Links, nun wollte ich gerne die description unter den Headlines ausgeben, was zwar funktioniert, jedoch:
Wie kann ich die Umlaute, Links etc. als solche darstellen lassen?
Der Text wird so ausgegeben:
Zitat:
Im Jahr 2005 sind einer Studie zufolge weltweit deutlich mehr Computer verkauft worden als im Vorjahr. Der PC-Absatz sei um gut 15 Prozent auf rund 218 Millionen Geräte gestiegen, teilte das US-Marktforschungsinstitut Gartner mit.
Das Forum hier wandelt die Zeichen um, aussehen tut es tatsächlich so (ohne die Abstände): ... Ger & # 228 ; te ...
Das script schaut jetzt so aus:
PHP-Code:
<?PHP
$fcontents 
join (''file ('http://www.wcm.at/backend.php?id=0'));
$fcontents str_replace ("</item>"""$fcontents); 
$fcontents str_replace ("</link>"""$fcontents);
$splices explode ("<item>"$fcontents);
for (
$i 1$i count($splices); $i++){
$description explode("<description>",$splices[$i]);
$description[1] = strip_tags($description[1]);
$link explode("<link>"$description[0]);
$link[1] = strip_tags($link[1]); 
$headline str_replace ("<title>""<a href=\"" trim($link[1]) . "\" target=\"_blank\" class=\"heiseheadline\">"$splices[$i]); 
$headline str_replace ("</title>""</a>"$headline); 
$headline explode ("<link>"$headline); 
$headline $headline[0]; 
print 
"<img src=\"1.gif\">" "[b]$headline[/b]</font>" "
$description[1] . "


"


?>
____________________________________
www.boinc.at
Alter ist offline   Mit Zitat antworten
Alt 23.01.2006, 19:28   #6
Alter
Sack
 
Benutzerbild von Alter
 
Registriert seit: 19.07.2001
Alter: 53
Beiträge: 1.962

Mein Computer

Standard

Sorry, ich habs schon: html_entity_decode()
____________________________________
www.boinc.at
Alter ist offline   Mit Zitat antworten
Antwort


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

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.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:43 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag