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.
Als je nou eens probeert om (zonder je class te gebruiken) wat data weg te schrijven in je 'media/cache/" . $HierStaatOnzeInput' met bijv. de fwrite functies etc.
Hoi Cake,

Ik heb snel het onderstaande even gemaakt:

<?php
$Artist = "Peter Luts";
$Title = "The Rain";

if (strlen($Artist) AND strlen($Title))
{
$CacheFile = "media/cache/" . $Artist . ".txt";

if (file_put_contents($CacheFile, $Artist . " - " . $Title))
{
echo 'Het bestand voor de artiest ' . $Artist . ' is wel gemaakt.';
}
else
{
echo 'Het bestand voor de artiest ' . $Artist . ' is niet gemaakt.';
}
}
?>

En dat werkt prima inclusief inhoud. Even wat proberen met de Renewal techniek.

Reageren