Elke keer als de website geladen wordt moet er een request worden gedaan naar LastFM. Daarom duurde het laden erg lang. Daarom heb ik het onderstaande toegepast. Maar het wil helaas niet helemaal werken.
<?php
class Caching
{
public $FilePath;
public $ApiUrl;
function construct__($FilePath, $ApiUrl)
{
if (strlen($FilePath) > 0 AND strlen($ApiUrl) > 0)
{
$this->FilePath = $FilePath;
$this->ApiUrl = $ApiUrl;
if ($this->CheckForRenewal())
{
$XML = $this->GetExternalInfo();
$this->StripAndSaveFile($XML);
}
else
{
return true;
}
}
else
{
return false;
}
}
function CheckForRenewal()
{
$CacheTime = (60 * 60 * 24 * 7);
$FileTime = filemtime($this->FilePath) + $CacheTime;
if ($FileTime < time())
{
return true;
}
else
{
return false;
}
}
function GetExternalInfo()
{
if ($XML = @simplexml_load_file($this->ApiUrl))
{
return $XML;
}
else
{
return false;
}
}
function StripAndSaveFile()
{
$Artist = $XML->artist;
$Output = new SimpleXMLElement("<artist></artist>");
for ($i = 0; $i < 1; $i++)
{
$InsertXML = $output->addChild("artist");
$InsertXML->addChild("name", $Artists[$i]->name);
$InsertXML->addChild("image_large", $Artists[$i]->xpath("image[@size='large']"));
file_put_contents($this->FilePath, $Output->asXML());
}
}
?>
<?php $oCaching = new Caching("media/cache/" . $HierStaatOnzeInput), "http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&api_key=b25b959554ed76058ac220b7b2e0a026&artist=" . $HierStaatOnzeInput); ?>
What's wrong? Hij wil het bestand niet wegschrijven. CHMOD is gedaan.
1.090 views