I have a php script which loads an xml file for our shoprating.
<?php
$xml=simplexml_load_file("https://www.kiyoh.nl/xml/recent_company_reviews.xml?xxxxx");
echo "<span itemprop='rating' itemscope itemtype='https://data-vocabulary.org/Rating'>Beoordeling: <span itemprop='average'>";
foreach($xml->children() as $average)
{
echo $average->total_score;
}
echo "</span>/<span itemprop='best'>10</span></span>";
echo " - <span itemprop='votes'>";
foreach($xml->children() as $total_review)
{
echo $total_review->total_reviews;
}
echo "</span> stemmen";
?>
Sometimes we get a fatal error on the line
foreach($xml->children() as $average)
I think it has something to do that the xml files can't be accessed. But this script is at the top opf the page, so the rest isn't downloaded anymore.
Is there a way that it can be bypassed? When it can't connect? So the site will be allways visible?
UPDATE 15-08-2014 I use this script to read out my rating at a external site. Sometimes i can't access the external site ... but when that happens my site gives a fatal error.
What should the code be to auto pass this script is not available?
Add
<?php
$xml=simplexml_load_file("https://www.kiyoh.nl/xml/recent_company_reviews.xml?xxxxx");
if (! empty($xml)) {
//Your code here
} else {
Echo "There is something wrong getting my xml file. Please try again later";
}
Wrap your code in a simple if statement that checks IF $xml is not empty. :) So if you couldn't read the file the page will still load, but without the xml functionality. Best of luck!