XML Ausgabe mit PHP
Andreas
- xml
Hallo,
ich möchte ein XML Feed erzeugen, mit PHP.
Dazu habe ich mir folgendes gebastelt:
function xml(){
global $mkportals, $DB, $mklib, $Skin, $mklib_board;
$rss_path_config = "mkportal/modules/rss/config.php";
include $rss_path_config;
echo '
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="0.91">
<channel>
<title>'.$title.'</title>
<link>'.$link.'</link>
<description>'.$description.'</description>
<language>'.$language.'</language>
<copyright>'.$copyright.'</copyright>
<image>
<url>'.$rss_logo.'</url>
<title>'.$rss_logotitel.'</title>
<link>'.$rss_logolink.'</link>
</image>';
$strSQL = "Select $domain_id, $domain_body, $domain_title From $domain_table Order by $domain_id ASC limit 15";
$query = $DB->query($strSQL);
while( $row = $DB->fetch_row($query) ) {
echo '
<item>
<title>'.$row['titel'].'</title>
<link>'.$domain_link.$row['id'].'</link>
<description>'.$row['body'].'</description>
</item>';
}
echo '
</channel>
</rss>';
}
Das was von PHP ausgespuckt wird ist aber kein XML sondern HTML. Was mach ich falsch bzw. wie funktioniert das mit der XML Ausgabe?
Andreas
Hi,
welchen Mime-Type sendest du?
Hi,
welchen Mime-Type sendest du?
Äh - ich dachte der im Script angegebene ist der Mimi-Type?
<?xml version="1.0" encoding="ISO-8859-1" ?>
Bitte kläre mich auf.
Andreas
Hallo Andreas.
welchen Mime-Type sendest du?
Äh - ich dachte der im Script angegebene ist der Mimi-Type?
Die arme Mimi hat doch damit nichts zu tun.
Manuel fragte dich nach dem gesendeten MIME-Typen.
<?xml version="1.0" encoding="ISO-8859-1" ?>
Dass ist das, was am Anfang des XML-Dokumentes steht, richtig.
Willst du, dass das XML auch als XML interpretiert wird, musst du den entsprechenden header in deinem PHP-Skript senden.
Einen schönen Montag noch.
Gruß, Ashura
OK, hab den Header mal eingebaut, geht immer noch nicht.
Hier jetzt meine Funktion. Kann es daran liegen dass die Funktion in einer Klasse eingebunden ist? Eigentlich ja nicht.
Hier mal der Link dazu:
http://www.mkportal-support.de/index.php?ind=rss
function xml(){
global $mkportals, $DB, $mklib, $Skin, $mklib_board;
//die("A");
$rss_path_config = "mkportal/modules/rss/config.php";
include $rss_path_config;
header("Content-type: text/xml");
echo '
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="0.91">
<channel>
<title>'.$title.'</title>
<link>'.$link.'</link>
<description>'.$description.'</description>
<language>'.$language.'</language>
<copyright>'.$copyright.'</copyright>
<image>
<url>'.$rss_logo.'</url>
<title>'.$rss_logotitel.'</title>
<link>'.$rss_logolink.'</link>
</image>';
$strSQL = "Select $domain_id, $domain_body, $domain_title From $domain_table Order by $domain_id ASC limit 15";
$query = $DB->query($strSQL);
while( $row = $DB->fetch_row($query) ) {
$res = $row[$domain_body];
$res=str_replace("%26amp;","&",$res);
$res=str_replace("&","&",$res);
$res=str_replace("%2C",",",$res);
$res=str_replace("<","<",$res);
$res=str_replace("&rt;",">",$res);
$res=str_replace(">",">",$res);
$res=str_replace("[tb:break]","<br>",$res);
$body = $res;
$res = $row[$domain_title];
$res=str_replace("%26amp;","&",$res);
$res=str_replace("&","&",$res);
$res=str_replace("%2C",",",$res);
$res=str_replace("<","<",$res);
$res=str_replace("&rt;",">",$res);
$res=str_replace(">",">",$res);
$res=str_replace("[tb:break]","<br>",$res);
$title = $res;
echo '
<item>
<title><![CDATA['.$title.']]></title>
<link><![CDATA['.$domain_link.$row[$domain_id].']]></link>';
if ($rss_showtext == '1')
echo '
<description><![CDATA['.$body.']]></description>';
echo '
</item>';
}
echo '
</channel>
</rss>';
}
Heureka
Es funktioniert.
Vielen Dank.
Gruß Andreas
Hallo Andreas.
Es funktioniert.
Nein, ganz und gar nicht:
Einen schönen Montag noch.
Gruß, Ashura
echo '
<?xml version="1.0" encoding="ISO-8859-1" ?>
dann sag ihm doch auch warum.
echo '<?xml version="1.0" encoding="ISO-8859-1" ?>
ist besser, da kein zeichen vor dem xml-opener sein darf (nl)
Hallo fanelf.de.
echo '
<?xml version="1.0" encoding="ISO-8859-1" ?>dann sag ihm doch auch warum.
Das hat dedlfix bereits getan.
Einen schönen Dienstag noch.
Gruß, Ashura
aber ohne lösung. offensichtlich konnte er damit nichts anfangen. manche muß man ja mit der nase drauf stoßen.
echo $begrüßung;
OK, hab den Header mal eingebaut, geht immer noch nicht.
Ich weiß nicht, was du für eine Fehlermeldung bekommst, aber ich erhalte:
XML-Verarbeitungsfehler: XMP Processing Instruction nicht am Beginn von externer Entität
Adresse: http://www.mkportal-support.de/index.php?ind=rss
Zeile Nr. 2, Spalte 3:
<?xml version="1.0" encoding="ISO-8859-1" ?>
Beseitige das in der Meldung bemängelte Problem.
echo "$verabschiedung $name";