Registrieren  •  Login 
  
 
im Forum


 FAQ   Mitgliederliste   Benutzergruppen   Teamseite   Suchen 

mal wieder die Feeds...

 
Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 24.02.2007, 12:10    Titel: mal wieder die Feeds...

Hallo zusammen

Ich habe folgenden Code eines PHP/mySQL-basierten RSS-Feeds (Skript von killerbees):

PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
// Datenbankverbindung herstellen
include('zugriff.inc.php');

header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
header ('Expires: ' gmdate('D, d M Y H:i:s'time()) . ' GMT');
header ('Last-Modified: ' gmdate('D, d M Y H:i:s') . ' GMT');
header ('Content-Type: text/xml');

// Header der News erstellen
$linktoindex 'http://www.stufejosua-weingeri.ch';
$news '<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">  <channel>
    <generator>Stufe Josua, Cevi Weiningen-Geroldswil</generator>
    <title>Stufe Josua RSS Newsfeed</title>
    <link>http://www.stufejosua-weingeri.ch</link>
    <description>Die neuesten News von der Stufe Josua!</description>
    <language>de-ch</language>
    <copyright>(c) by Stufe Josua Cevi Weiningen-Geroldswil und Thomas Haefliger v/o Goofy</copyright>'
;
    
$sql "SELECT * FROM `news` ORDER BY `id` DESC";
$result mysql_query($sql);

// Die Tabelle muss wie folgt aussehen:
// +-----------------------------------------------------------------------------------------+
// | titel |       datum        | autor |          link          |          eintrag          |
// +-----------------------------------------------------------------------------------------+
// | News1 | 2006-12-3 13:34:23 | Ich   | http://www.beispiel.de | Hier der eintrag der News |
// | Test  | 2006-12-4 13:32:51 | Du    | http://www.test.de     | Hier ist der zweite News  |
// +-----------------------------------------------------------------------------------------+

while($row mysql_fetch_assoc($result))
{
  
$news .= '    <item>
      <title>'
.$row['titel'].'</title>
      <pubDate>'
.$row['datum'].'</pubDate>
      <author>'
.$row['autor'].'</author>
      <link>'
.$row['link'].'</link>
      <description><![CDATA['
.substr($row['eintrag'], 040).'...   <a href="'.$linktoindex.'">mehr...</a>]]></description>
    </item>'
;
  
$i++;
}

$news .= '  </channel>
</rss>'
;

echo 
$news;

?>


Nun möchte ich die ganze Ausgabe (also $news) in eine externe XML-Datei schreiben.

Ich habe mir schon folgendes überlegt:
Ich schreibe in die Datei mit
PHP-Code:
1
<?php fopen("counter.txt","a"); 

"a" steht nur für "schreiben", der Dateizeiger befindet sich bei diesem Modus am Ende.

Wie aber muss nun der Code lauten, damit es
a) Mit den Tags übernommen wird (also <autor> und so)
b) Er sollte valid sein...

Kann mir jemand von euch helfen?
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13929
Wohnort: Wien

BeitragVerfasst am: 24.02.2007, 12:33    Titel:

Du musst einfach nur den Inhalt der Variable $news (in der alles steht) in die Datei schreiben. Dabei solltest du Modus w+ verwenden, da du ja immer alle Newsbeiträge neu in die Datei schreibst Wink

PHP-Code:
1
2
3
4
5
<?php
$new_file 
fopen("news.xml","w+");
fputs($new_file$news);
fclose ($new_file);
?>



MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 24.02.2007, 13:00    Titel:

Da gibt's nen Fehler:

Zitat:
XML-Verarbeitungsfehler: Kein Element gefunden
Adresse: http://www.stufejosua-weingeri.ch/rss/news.xml
Zeile Nr. 1, Spalte 1:
^


Der Bishherige Inhalt der news.xml:
Code:
<?xml version="1.0" encoding="iso-8859-1"?>



und Fehler gibts auch hier:
http://www.feedvalidator.org/check.cgi?url=http%3A%2F%2Fwww.stufejosua-weingeri.ch%2Frss%2Fnews.xml
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13929
Wohnort: Wien

BeitragVerfasst am: 24.02.2007, 19:56    Titel:

Also mal langsam.

Du erstellst eine leere news.xml Datei, in die du alles schreibst. Dieser Datei gibst du CHMOD 777. Du verwendest dein altes Script weiter, und ersetzt nur das echo mit dem Code für die Schreibfunktion. Dann kannst du das PHP-Script immer aufrufen, wenn du eine neue News schreibst.


MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 25.02.2007, 10:57    Titel:

killerbees19 hat Folgendes geschrieben:
Also mal langsam.

Du erstellst eine leere news.xml Datei, in die du alles schreibst. Dieser Datei gibst du CHMOD 777. Du verwendest dein altes Script weiter, und ersetzt nur das echo mit dem Code für die Schreibfunktion. Dann kannst du das PHP-Script immer aufrufen, wenn du eine neue News schreibst.


MfG Christian

Genau so wärs geplant Very Happy


Ich zeig hier mal das aktuelle Script:

PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
// Datenbankverbindung herstellen
include('zugriff.inc.php');

header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
header ('Expires: ' gmdate('D, d M Y H:i:s'time()) . ' GMT');
header ('Last-Modified: ' gmdate('D, d M Y H:i:s') . ' GMT');
header ('Content-Type: text/xml');

// Header der News erstellen
$linktoindex 'http://www.stufejosua-weingeri.ch';
$news '<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">  <channel>
    <generator>Stufe Josua, Cevi Weiningen-Geroldswil</generator>
    <title>Stufe Josua RSS Newsfeed</title>
    <link>http://www.stufejosua-weingeri.ch</link>
    <description>Die neuesten News von der Stufe Josua!</description>
    <language>de-ch</language>
    <copyright>(c) by Stufe Josua Cevi Weiningen-Geroldswil und Thomas Haefliger v/o Goofy</copyright>'
;
    
$sql "SELECT * FROM `news` ORDER BY `id` DESC";
$result mysql_query($sql);

// Die Tabelle muss wie folgt aussehen:
// +-----------------------------------------------------------------------------------------+
// | titel |       datum        | autor |          link          |          eintrag          |
// +-----------------------------------------------------------------------------------------+
// | News1 | 2006-12-3 13:34:23 | Ich   | http://www.beispiel.de | Hier der eintrag der News |
// | Test  | 2006-12-4 13:32:51 | Du    | http://www.test.de     | Hier ist der zweite News  |
// +-----------------------------------------------------------------------------------------+

while($row mysql_fetch_assoc($result))
{
  
$news .= '    <item>
      <title>'
.$row['titel'].'</title>
      <pubDate>'
.$row['datum'].'</pubDate>
      <author>'
.$row['autor'].'webmaster@stufejosua-weingeri.ch</author>
      <link>'
.$row['link'].'</link>
      <description><![CDATA['
.substr($row['eintrag'], 040).'...   <a href="'.$linktoindex.'">mehr...</a>]]></description>
    </item>'
;
  
$i++;
}

$news .= '  </channel>
</rss>'
;

// Wenn die Schreibung in die XML-Datei nicht stattfinden soll, muss man die Kommtentarzeichen der folgenden Zeile löschen:
// echo $news;

$new_file fopen("news.xml","w+");
fputs($new_file$news);
fclose ($new_file);

?>


Als Antwort bekomme ich nun:

newsfeed.php hat Folgendes geschrieben:
XML-Verarbeitungsfehler: Kein Element gefunden
Adresse: http://www.stufejosua-weingeri.ch/rss/newsfeed.php
Zeile Nr. 1, Spalte 1:
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
P@k.l
Ehemaliger
Ehemaliger



Anmeldedatum: 17.06.2006
Geschlecht: Männlich
Beiträge: 340
Wohnort: Köln

BeitragVerfasst am: 25.02.2007, 13:01    Titel:

Du musst schon was ausgeben...
wie wär's mit nem echo $news; am Ende?
_________________
Nach oben
Benutzer-Profile anzeigen P@k.l ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 25.02.2007, 13:03    Titel:

Wieso denn ausgeben?

Es soll ja in die news.xml geschrieben werden....
Eben mit

PHP-Code:
1
2
3
<?php $new_file fopen("news.xml","w+");
fputs($new_file$news);
fclose ($new_file); 
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
P@k.l
Ehemaliger
Ehemaliger



Anmeldedatum: 17.06.2006
Geschlecht: Männlich
Beiträge: 340
Wohnort: Köln

BeitragVerfasst am: 25.02.2007, 13:15    Titel:

Achso.... dann musst du den header()-Kram aus dem Script nehmen...
_________________
Nach oben
Benutzer-Profile anzeigen P@k.l ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 25.02.2007, 14:17    Titel:

OK, die Schreiberei in die xml funzt wunderbar.

Allerdings ist der Feed noch nicht valid.
==> Siehe http://www.feedvalidator.org/check.cgi?url=http%3A%2F%2Fwww.stufejosua-weingeri.ch%2Frss%2Fnews.xml

Die meisten Fehler verstehe ich nicht ganz, zB:

Zitat:
pubDate must be an RFC-822 date-time: 7.2.2007

oder
Zitat:
link must be a full and valid URL: www.stufejosua-weingeri.ch



Kann mir jemand erklären, was zum Teufel dass das heisst?
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
P@k.l
Ehemaliger
Ehemaliger



Anmeldedatum: 17.06.2006
Geschlecht: Männlich
Beiträge: 340
Wohnort: Köln

BeitragVerfasst am: 25.02.2007, 14:26    Titel:

Zum ersten Problem könnte dir diese Seite helfen: http://www.feedvalidator.org/docs/error/InvalidRFC2822Date.html
Bei dem zweiten musst einfach nur bei www.stufejosua-weingeri.ch ein http:// davor setzten.
_________________
Nach oben
Benutzer-Profile anzeigen P@k.l ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 25.02.2007, 15:03    Titel:

ok, danke

Zum ersten: ich glaub', ich lass es, wie es jetzt ist, diese Datumsausgabe gefällt mir nicht.
Zum zweiten: habe den Link geändert, hat noch keine Wirkung gezeigt.


Nun, ich habe meine Feeds mit FeedReader3, IE7, Firefox und Opera 9 ausprobiert, es funzen alle. Dann sind sie eben nicht valid Very Happy
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht teilnehmen.
Du kannst Dateien in diesem Forum nicht hochladen.
Du kannst Dateien in diesem Forum nicht herunterladen.

 

Alle Zeiten sind GMT + 2 Stunden (Sommerzeit)
Aktuelles Datum und Uhrzeit: 02.04.2020, 23:07
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!
Software based on work from the phpBB-Group  •  Deutsche Übersetzung von phpBB.de

netcup - Internetdienstleistungen
 
 
[ happytec.at | forum.happytec.at | blog.happytec.at | esports.happytec.at | event.happytec.at ]