Gepost door: piet Gepost op: 2011-10-03 - 22:03 |
Dit is echt een cool bericht.
[E-mail] |
Gepost door: Gepost op: - |
[E-mail] |
<?php
/**
* Deze functie opend het opgegenven xml document
* en geeft een gestructureerde array terug.
* Array (
* [0] => Array (
* [id] => 16
* [naam] => foo
* [emailadres] => foo@bar.com
* [website] => http://www.example.com
* [bericht] => blablabla
* [datum] => 2004-10-03
* [tijd] => 23:06
* )
* [1] => Array ()...
* )
*/
function xml_read($xml) {
if (!$data = implode('', file($xml))) {
die('kan xml document niet vinden!');
}
$parser = xml_parser_create();
$params = array();
$level = array();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $values, $index);
xml_parser_free($parser);
foreach ($values as $element) {
switch($element['type']) {
case 'open' :
if (array_key_exists('attributes', $element)) {
list($level[$element['level']], $extra) = array_values($element['attributes']);
}
else { $level[$element['level']] = $element['tag']; }
break;
case 'complete' :
$start = 1;
$exec = '$params';
while($start < $element['level']) {
$exec .= '[$level['.$start.']]';
$start++;
}
$exec .= '[$element[\'tag\']] = $element[\'value\'];';
eval($exec);
break;
}
}
return $params;
}
/* gebruik: */
$parsed = xml_read('./xmlbestand.xml');
$parsed = $parsed['berichten'];
for ($i = 0; $i < count($parsed); $i++) {
?>
<table class="gastenboek" width="60%" border="1" cellspacing="0" cellpadding="2">
<tr>
<td width="88%" valign="top">
<b>Gepost door</b>: <?php echo $parsed[$i]['naam']; ?>
<b>Gepost op</b>: <?php echo $parsed[$i]['datum']; ?> - <?php echo $parsed[$i]['tijd']; ?>
</td>
</tr>
<tr>
<td valign="top">
<?php echo $parsed[$i]['bericht']; ?>
<br><hr size="1" noshade>
[<a href="mailto:<?php echo $parsed[$i]['emailadres']; ?> ">E-mail</a>]
</td>
</tr>
</table><br>
<?php }
show_source(__FILE__);
?>
<a href="xmlbestand.xml">link naar een xml bestand</a>
link naar een xml bestand