Ohne Code kann man wenig schreiben was der Fehler ist.
Grundsätzlich sollte es aber Funktionieren.
mal einfaches Beispiel wie ich RDF Seiten von KDE.org einlese und Bearbeite.
PHP-Code:
<?php
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", FALSE);
header("Pragma: no-cache");
class Counter
{
var $name, $symbol, $code, $type;
function Counter($aa)
{
foreach ($aa as $k=>$v)
$this->$k = $aa[$k];
}
}
function parsetree($mvalues)
{
for ($i=0; $i < count($mvalues); $i++) {
$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
}
return new Counter($mol);
}
function einlesen($filename)
{
$data = implode("", file($filename));
$parser = xml_parser_create();
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, $tags);
xml_parser_free($parser);
foreach ($tags as $key=>$val)
{
if ( $key == "lastBuildDate" )
{
$molranges = $val;
for ($i=0; $i < count($molranges); $i+=2) {
$offset = $molranges[$i] + 1;
$len = $molranges[$i + 1] - $offset;
$tdb[] = parsetree(array_slice($values, $offset, $len));
}
}
}
foreach ($tags as $key=>$val)
{
if ( $key == "item" ) {
$molranges = $val;
for ($i=0; $i < count($molranges); $i+=2) {
$offset = $molranges[$i] + 1;
$len = $molranges[$i + 1] - $offset;
$tdb[] = parsetree(array_slice($values, $offset, $len));
}
} else {
continue;
}
}
return $tdb;
}
function rdf_write_select($uri, $nam, $req = "post")
{
$db = einlesen($uri);
$var = "<select name=\"" . $nam . "\" style=\"width: 274px; height: 24px;\">";
foreach ( $db AS $k )
{
$txt = utf8_encode( $k->title );
$style = ( $k % 2 == 0 ) ? "background-color: #c4d0ff;" : "background-color: #ffffff;";
$var .= "<option value=\"" . strtolower( $k->link ) . "\" style=\"" . $style . "\">" . $txt . "</option>\n";
}
$var .= "</select>
<input type=\"submit\" value=\"Go\" style=\"width: 26px; height: 24px;\"/>";
return $var;
}
$one = rdf_write_select("http://www.kde.org/kde-look-content.rdf", "kdenews", "get");
$two = rdf_write_select("http://www.kde.org/kde-look-news.rdf", "kdenews", "get");
$thr = rdf_write_select("http://www.kde.org/kde-look-discussion.rdf", "kdenews", "get");
$rel = $_SERVER['PHP_SELF'];
echo <<<EOT
<div style="text-align: center; padding: 3px; position: relative; width: 320px; height: auto; background-color: #c4d0ff; border: 1px inset #353535;">
<form action="$rel" method="$req">
<label>Kde News Tickers $one $two $thr </label>
</form>
</div>
EOT;
if ( isset( $_GET['kdenews'] ) && $_GET['kdenews'] != "" )
echo header("location: " . $_GET['kdenews'] );
?>
Lesezeichen