1. create a new php direct execution widget
2. add this code:
PHP Code:
<?php
ob_start();
function getNewestXKCD() {
$document = new DOMDocument();
// Load the HTML document from xkcd.com. The '@' is to suppress error messages (since there is one!).
$load = @$document->loadHTMLFile('http://www.xkcd.com/');
$src = '';
$title = '';
$alt = '';
// If we can connect to the site:
if ($load) {
// Make an array of all of the image tags in the page.
$images = $document->getElementsByTagName('img');
// Go through each image tag to until we find the comic.
foreach ($images as $image) {
// If it's the one with the comic:
if (substr($image->getAttribute('src'), 0, 28) == 'http://imgs.xkcd.com/comics/') {
$src = $image->getAttribute('src');
$title = $image->getAttribute('title');
$alt = $image->getAttribute('alt');
break; // We don't need to look anymore.
}
}
// Create output (no need to use the DOM for this part):
$return = '<div id="newKXCD" style="text-align:center;"><h1 style="font-size:20px;font-variant:small-caps;font-
family:Lucida, sans-serif;font-weight:bold;">'.$alt.'</h1>';
$return .= '<a href="http://www.xkcd.com" style="size:14pt;color:black;text-decoration:none;"><img src="'.$src.'"
title="'.$title.'" alt="'.$alt.'" border="0" /></a></div>';
}
// If we cannot connect to the site, print an error message.
else $return = '<div id="newKXCD" style="text-align:center"><a href="http://www.xkcd.com">Newest XKCD Comic cannot be
accessed<br>at this time, please try again later!</a></div>';
return $return;
} // End function
// Call the function which returns the HTML to display the image
$output = getNewestXKCD();
// Oh and: Unexpected end tag : a in http://www.xkcd.com/, line: 48
?>
I changed only echo getNewestXKCD(); to $output = getNewestXKCD(); because $output is the standard outputvariable in the widgets