PHP interesse |
|
Ik heb een database met gegevens.
Die gegevens wil ik omzetten naar een rss-bestand.
Bijv.:
<xml>
<title>test1</title>
<datum>11-05-2008</datum>
</xml>
<xml>
<title>test2</title>
<datum>11-05-2008</datum>
</xml>
enz.
<xml> <title>test1</title> <datum>11-05-2008</datum> </xml> <xml> <title>test2</title> <datum>11-05-2008</datum> </xml> enz.
Op zich lijkt mij dat er met de php-code niks mis is, maar toch komt het resultaat er bijv. zo uit te zien:
<xml>
<title>test1</title>
<datum>11-05-2008</datum>
</xml>
<xml>
<title>test2</title>
<datum>12-05-2008</datum>
</xml>
<xml>
<title>test3</title>
<datum>13-05-2008</datum>
</xml>
<xml>
<title>test4</title>
<datum>14-05-2008</datum>
</xml>
<xml>
<title>test5</title>
<datum>15-05-2008
<xml> <title>test1</title> <datum>11-05-2008</datum> </xml> <xml> <title>test2</title> <datum>12-05-2008</datum> </xml> <xml> <title>test3</title> <datum>13-05-2008</datum> </xml> <xml> <title>test4</title> <datum>14-05-2008</datum> </xml> <xml> <title>test5</title> <datum>15-05-2008
Oftewel, de code stopt ineens en slaat het bestand op zonder het af te maken. Dit is overigens niet bij het laatste record in de database, maar zomaar ergens midden. Ook niet altijd op dezelfde plaats.
Nu heb ik al geprobeerd om het volgende bij de php-functie die de RSS parst te zetten, maar het resultaat blijft gelijk:
if(rssfunctie($string)=="true"){
...
}
else{
...
}
if(rssfunctie($string)=="true"){ ... } else{ ... }
Zijn er meer onder jullie die wel eens met dit probleem te maken hebben gehad? En hebben jullie dit weten op te lossen?
Update op verzoek van Wim:
rsstoxml.php:
<?php
ob_start();
require("../../db/configuratie.php");
include("rssparser.php");
// Query om gegevens te selecteren voor in het xml document
$write2xmlQ = "SELECT * FROM mijntabel WHERE type='1' ORDER BY datum DESC";
$write2xmlS = "SELECT * FROM mijntabel";
if(xml_write($write2xmlQ,'../rss.xml')=="true"){
header("location:index.php");
}
else{
echo "FOUTMELDING";
}
?>
<?php require("../../db/configuratie.php"); include("rssparser.php"); // Query om gegevens te selecteren voor in het xml document $write2xmlQ = "SELECT * FROM mijntabel WHERE type='1' ORDER BY datum DESC"; $write2xmlS = "SELECT * FROM mijntabel"; if(xml_write($write2xmlQ,'../rss.xml')=="true"){ } else{ } ?>
rssparser.php:
<?php
function xml_write($sQuery,$sDirectoryfile)
{
if(substr($sQuery, 0, 6) != 'SELECT')
{
die('De opgegeven query is niet geldig!');
}
$rRows = mysql_query($sQuery) or die(mysql_error());
$sDocument = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<packagelist version=\"1\" xmlns=\"http://xspf.org/ns/0/\">\r\n<title>RSS</title>\r\n<tracelist>\r\n";
while(($aImage = mysql_fetch_assoc($rRows)) !== false)
{
$sDocument .= "<xml>\r\n";
$sDocument .= "<title>test".$aImage['id']."</title>\r\n";
$sDocument .= "<datum>".$aImage['datum']."</datum>\r\n";
$sDocument .= "</xml>\r\n";
}
$sDocument .= "</tracelist>\r\n</packagelist>\r\n</xml>";
$rFile = fopen($sDirectoryfile, 'w');
fwrite($rFile, $sDocument);
fclose($rFile);
return true;
}
?>
<?php function xml_write($sQuery,$sDirectoryfile) { if(substr($sQuery, 0, 6) != 'SELECT') { die('De opgegeven query is niet geldig!'); } $sDocument = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<packagelist version=\"1\" xmlns=\"http://xspf.org/ns/0/\">\r\n<title>RSS</title>\r\n<tracelist>\r\n"; { $sDocument .= "<xml>\r\n"; $sDocument .= "<title>test".$aImage['id']."</title>\r\n"; $sDocument .= "<datum>".$aImage['datum']."</datum>\r\n"; $sDocument .= "</xml>\r\n"; } $sDocument .= "</tracelist>\r\n</packagelist>\r\n</xml>"; $rFile = fopen($sDirectoryfile, 'w'); return true; } ?>
|