Hallo, ich möchte gerne das beim folgenden Script die "charts.xml" nicht mit leeren Daten gefüllt wird falls die Socketverbindung keine Daten liefert damit man immer ein "Backup" hat falls die Charts gelöscht werden von der Seite wohin die Socketverbindung geht.
Im Klartext: Keine Charts in die Charts.xml laden wenn die Socketverbindung keinen Interpreten und Titel liefert.
Wichtig dabei ist das bevor die leeren Daten in die XML fälschlicherweise geladen werden überprüft werden soll ob Daten gesendet wurden...
hier mein Script:
Im Klartext: Keine Charts in die Charts.xml laden wenn die Socketverbindung keinen Interpreten und Titel liefert.
Wichtig dabei ist das bevor die leeren Daten in die XML fälschlicherweise geladen werden überprüft werden soll ob Daten gesendet wurden...
hier mein Script:
PHP:
<?
$filedate = filectime("charts.xml");
$difference = time() - $filedate;
if ($difference > "86400"){
$url="http://www.xxx.de/rooster/djcharts/showcharts.xml.isohtml.php?artist=artist";
function socketfile($url) {
$parsedurl = @parse_url($url);
if (empty($parsedurl['host']))
return null;
$host = $parsedurl['host'];
if (empty($parsedurl['path']))
$documentpath = '/';
else
$documentpath = $parsedurl['path'];
if (!empty($parsedurl['query']))
$documentpath .= '?'.$parsedurl['query'];
$port = empty($parsedurl['port'])?80:$parsedurl['port'];
$fp = fsockopen ($host, $port, $errno, $errstr, 30);
if (!$fp)
return null;
fputs ($fp, "GET {$documentpath} HTTP/1.0\r\nHost: {$host}\r\n\r\n");
do {
$line = chop(fgets($fp));
} while (!empty($line) and !feof($fp));
$result = Array();
while (!feof($fp)) {
$result[] = fgets($fp);
}
fclose($fp);
return $result;
}
$content = socketfile($url);
$putcharts = fopen("charts.xml", "w");
foreach($content as $inhalt){
fwrite($putcharts, "$inhalt\n");
};
fclose($putcharts);
}
$charts = simplexml_load_file('charts.xml');
}
?>
<!-- Hier folgt die Ausgabe der Charts mittels $charts->chartset[0]->titel usw... -->
Zuletzt bearbeitet: