clean up spacing

This commit is contained in:
Piotr KUCHARSKI 2014-11-25 13:58:04 +01:00
parent 14cdaf7dd1
commit 5e57817eb5

268
index.php
View file

@ -21,21 +21,9 @@ by Sébastien SAUVAGE.
*/ */
// Do not edit below this section unless you know what you are doing!
//-----------------------
// Debug stuff
//-----------------------
// error_reporting(E_ERROR);
// error_reporting(E_ALL);
error_reporting(-1); error_reporting(-1);
/*
$mtime = microtime(); // Do not edit below this section unless you know what you are doing!
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
*/
header('Content-Type: text/html; charset=UTF-8'); // We use UTF-8 for proper international characters handling. header('Content-Type: text/html; charset=UTF-8'); // We use UTF-8 for proper international characters handling.
$version = "0.3.7"; $version = "0.3.7";
@ -43,6 +31,7 @@ ini_set("memory_limit","256M");
require("config-default.php"); require("config-default.php");
include("config.php"); include("config.php");
//----------------------- //-----------------------
// DEFINE VARIABLES // DEFINE VARIABLES
//----------------------- //-----------------------
@ -66,30 +55,35 @@ if (!function_exists('exif_read_data') && $display_exif == 1) {
//----------------------- //-----------------------
// FUNCTIONS // FUNCTIONS
//----------------------- //-----------------------
function padstring($name, $length) { function padstring($name, $length)
{
global $label_max_length; global $label_max_length;
if (!isset($length)) $length = $label_max_length; if (!isset($length))
if (strlen($name) > $length) { $length = $label_max_length;
if (strlen($name) > $length)
return substr($name, 0, $length) . "..."; return substr($name, 0, $length) . "...";
} else return $name; return $name;
} }
function getfirstImage($dirname) {
function getfirstImage($dirname)
{
$imageName = false; $imageName = false;
$ext = array("jpg", "png", "jpeg", "gif", "JPG", "PNG", "GIF", "JPEG"); $ext = array("jpg", "png", "jpeg", "gif", "JPG", "PNG", "GIF", "JPEG");
if($handle = opendir($dirname)) if ($handle = opendir($dirname)) {
{ while(false !== ($file = readdir($handle))) {
while(false !== ($file = readdir($handle)))
{
$lastdot = strrpos($file, '.'); $lastdot = strrpos($file, '.');
$extension = substr($file, $lastdot + 1); $extension = substr($file, $lastdot + 1);
if ($file[0] != '.' && in_array($extension, $ext)) break; if ($file[0] != '.' && in_array($extension, $ext))
break;
} }
$imageName = $file; $imageName = $file;
closedir($handle); closedir($handle);
} }
return($imageName); return $imageName;
} }
function readEXIF($file) {
function readEXIF($file)
{
$exif_data = ""; $exif_data = "";
$exif_idf0 = exif_read_data($file, 'IFD0', 0); $exif_idf0 = exif_read_data($file, 'IFD0', 0);
$emodel = $exif_idf0['Model']; $emodel = $exif_idf0['Model'];
@ -111,26 +105,37 @@ function readEXIF($file) {
$exif_date = exif_read_data($file, 'IFD0', 0); $exif_date = exif_read_data($file, 'IFD0', 0);
$edate = $exif_date['DateTime']; $edate = $exif_date['DateTime'];
if (strlen($emodel) > 0 OR strlen($efocal) > 0 OR strlen($eexposuretime) > 0 OR strlen($efnumber) > 0 OR strlen($eiso) > 0) $exif_data .= "::"; if (strlen($emodel . $efocal . $eexposuretime . $efnumber . $eiso) > 0)
if (strlen($emodel) > 0) $exif_data .= "$emodel"; $exif_data .= "::";
if ($efocal > 0) $exif_data .= " | $efocal" . "mm"; if (strlen($emodel) > 0)
if (strlen($eexposuretime) > 0) $exif_data .= " | $eexposuretime" . "s"; $exif_data .= "$emodel";
if ($efnumber > 0) $exif_data .= " | f$efnumber"; if ($efocal > 0)
if (strlen($eiso) > 0) $exif_data .= " | ISO $eiso"; $exif_data .= " | $efocal" . "mm";
return($exif_data); if (strlen($eexposuretime) > 0)
} $exif_data .= " | $eexposuretime" . "s";
function checkpermissions($file) { if ($efnumber > 0)
global $messages; $exif_data .= " | f$efnumber";
if (substr(decoct(fileperms($file)), -1, strlen(fileperms($file))) < 4 OR substr(decoct(fileperms($file)), -3,1) < 4) $messages = "At least one file or folder has wrong permissions. Learn how to <a href='http://minigal.dk/faq-reader/items/how-do-i-change-file-permissions-chmod.html' target='_blank'>set file permissions</a>"; if (strlen($eiso) > 0)
$exif_data .= " | ISO $eiso";
return $exif_data;
} }
if (!defined("GALLERY_ROOT")) define("GALLERY_ROOT", ""); function checkpermissions($file)
{
global $messages;
if (substr(decoct(fileperms($file)), -1, strlen(fileperms($file))) < 4 OR substr(decoct(fileperms($file)), -3, 1) < 4)
$messages = "At least one file or folder has wrong permissions. Learn how to <a href='http://minigal.dk/faq-reader/items/how-do-i-change-file-permissions-chmod.html' target='_blank'>set file permissions</a>";
}
if (!defined("GALLERY_ROOT"))
define("GALLERY_ROOT", "");
$requestedDir = ''; $requestedDir = '';
if (!empty($_GET['dir'])) $requestedDir = $_GET['dir']; if (!empty($_GET['dir']))
$requestedDir = $_GET['dir'];
$thumbdir = rtrim('photos/' . $requestedDir, '/'); $thumbdir = rtrim('photos/' . $requestedDir, '/');
//$thumbdir = str_replace('/..', '', $thumbdir); // Prevent directory traversal attacks. //$thumbdir = str_replace('/..', '', $thumbdir); // Prevent directory traversal attacks.
if(strstr($thumbdir, '..') !== FALSE) { if (strstr($thumbdir, '..') !== false) {
$requestedDir = ''; $requestedDir = '';
$thumbdir = rtrim('photos/', '/'); $thumbdir = rtrim('photos/', '/');
} }
@ -142,19 +147,14 @@ $currentdir = GALLERY_ROOT . $thumbdir;
//----------------------- //-----------------------
$files = array(); $files = array();
$dirs = array(); $dirs = array();
if (is_dir($currentdir) && $handle = opendir($currentdir)) if (is_dir($currentdir) && $handle = opendir($currentdir)) {
{ while (false !== ($file = readdir($handle)) && !in_array($file, $SkipObjects)) {
while (false !== ($file = readdir($handle)) && !in_array($file, $SkipObjects))
{
// 1. LOAD FOLDERS // 1. LOAD FOLDERS
if (is_dir($currentdir . "/" . $file)) if (is_dir($currentdir . "/" . $file)) {
{ if ($file != "." && $file != "..") {
if ($file != "." && $file != ".." )
{
checkpermissions($currentdir . "/" . $file); // Check for correct file permission checkpermissions($currentdir . "/" . $file); // Check for correct file permission
// Set thumbnail to folder.jpg if found: // Set thumbnail to folder.jpg if found:
if (file_exists($currentdir. '/' . $file . '/folder.jpg')) if (file_exists($currentdir. '/' . $file . '/folder.jpg')) {
{
$linkParams = http_build_query( $linkParams = http_build_query(
array('dir' => ltrim("$requestedDir/$file", '/')), array('dir' => ltrim("$requestedDir/$file", '/')),
'', '',
@ -227,18 +227,14 @@ $dirs = array();
// 2. LOAD CAPTIONS // 2. LOAD CAPTIONS
$img_captions[''] = ''; $img_captions[''] = '';
if (file_exists($currentdir ."/captions.txt")) if (file_exists($currentdir ."/captions.txt")) {
{
$file_handle = fopen($currentdir ."/captions.txt", "rb"); $file_handle = fopen($currentdir ."/captions.txt", "rb");
while (!feof($file_handle) ) while (!feof($file_handle)) {
{
$line_of_text = fgets($file_handle); $line_of_text = fgets($file_handle);
if (empty($line_of_text)) { if (empty($line_of_text))
continue; continue;
}
$parts = explode('/n', $line_of_text); $parts = explode('/n', $line_of_text);
foreach($parts as $img_capts) foreach($parts as $img_capts) {
{
list($img_filename, $img_caption) = explode('|', $img_capts); list($img_filename, $img_caption) = explode('|', $img_capts);
$img_captions[$img_filename] = $img_caption; $img_captions[$img_filename] = $img_caption;
} }
@ -247,27 +243,20 @@ $dirs = array();
} }
// 3. LOAD FILES // 3. LOAD FILES
if ($file != "." && $file != ".." && $file != "folder.jpg") if ($file != "." && $file != ".." && $file != "folder.jpg") {
{ if ($display_filename)
if($display_filename) {
$filename_caption = "<em>" . padstring($file, $label_max_length) . "</em>"; $filename_caption = "<em>" . padstring($file, $label_max_length) . "</em>";
} else
else {
$filename_caption = ""; $filename_caption = "";
}
// JPG, GIF and PNG // JPG, GIF and PNG
if (preg_match("/.jpg$|.gif$|.png$/i", $file)) if (preg_match("/.jpg$|.gif$|.png$/i", $file)) {
{
//Read EXIF //Read EXIF
if (!array_key_exists($file, $img_captions)) { if (!array_key_exists($file, $img_captions)) {
if ($display_exif == 1) if ($display_exif == 1) {
{
$exifReaden = readEXIF($currentdir . "/" . $file); $exifReaden = readEXIF($currentdir . "/" . $file);
//Add to the caption all the EXIF information //Add to the caption all the EXIF information
$img_captions[$file] = $file.$exifReaden; $img_captions[$file] = $file.$exifReaden;
} } else {
else
{
//If no EXIF, just use the filename as caption //If no EXIF, just use the filename as caption
$img_captions[$file] = $file; $img_captions[$file] = $file;
} }
@ -278,24 +267,18 @@ $dirs = array();
// If file is not provided, image filename will be used instead. // If file is not provided, image filename will be used instead.
checkpermissions($currentdir . "/" . $file); checkpermissions($currentdir . "/" . $file);
if (is_file($currentdir.'/'.$file.'.html')) { if (is_file($currentdir.'/'.$file.'.html'))
$img_captions[$file] = $file.'::'.htmlspecialchars(file_get_contents($currentdir.'/'.$file.'.html'), ENT_QUOTES); $img_captions[$file] = $file.'::'.htmlspecialchars(file_get_contents($currentdir.'/'.$file.'.html'), ENT_QUOTES);
}
$linkUrl = str_replace('%2F', '/', rawurlencode("$currentdir/$file")); $linkUrl = str_replace('%2F', '/', rawurlencode("$currentdir/$file"));
$imgParams = http_build_query( $imgParams = http_build_query(
array( array('filename' => "$thumbdir/$file", 'size' => $thumb_size),
'filename' => "$thumbdir/$file",
'size' => $thumb_size
),
'', '',
'&amp;' '&amp;');
);
$imgUrl = GALLERY_ROOT . "createthumb.php?$imgParams"; $imgUrl = GALLERY_ROOT . "createthumb.php?$imgParams";
if ($lazyload) { if ($lazyload)
$imgopts = "class=\"b-lazy\" src=data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== data-src=\"$imgUrl\""; $imgopts = "class=\"b-lazy\" src=data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== data-src=\"$imgUrl\"";
} else { else
$imgopts = "src=\"{$imgUrl}\""; $imgopts = "src=\"{$imgUrl}\"";
}
$files[] = array( $files[] = array(
"name" => $file, "name" => $file,
"date" => filemtime($currentdir . "/" . $file), "date" => filemtime($currentdir . "/" . $file),
@ -315,27 +298,25 @@ $dirs = array();
if (preg_match("/.ogv$|.mp4$|.mpg$|.mpeg$|.mov$|.avi$|.wmv$|.flv$|.webm$/i", $file)) $extension = "VIDEO"; // video files if (preg_match("/.ogv$|.mp4$|.mpg$|.mpeg$|.mov$|.avi$|.wmv$|.flv$|.webm$/i", $file)) $extension = "VIDEO"; // video files
if (preg_match("/.aiff$|.aif$|.wma$|.aac$|.flac$|.mp3$|.ogg$|.m4a$/i", $file)) $extension = "AUDIO"; // audio files if (preg_match("/.aiff$|.aif$|.wma$|.aac$|.flac$|.mp3$|.ogg$|.m4a$/i", $file)) $extension = "AUDIO"; // audio files
if ($extension != "") {
if ($extension != "")
{
$files[] = array( $files[] = array(
"name" => $file, "name" => $file,
"date" => filemtime($currentdir . "/" . $file), "date" => filemtime($currentdir . "/" . $file),
"size" => filesize($currentdir . "/" . $file), "size" => filesize($currentdir . "/" . $file),
"html" => "<li><a href='" . $currentdir . "/" . $file . "' title='$file'><em-pdf>" . padstring($file, 20) . "</em-pdf><span></span><img src='" . GALLERY_ROOT . "images/filetype_" . $extension . ".png' width='$thumb_size' height='$thumb_size' alt='$file' /></a>" . $filename_caption . "</li>"); "html" => "<li><a href='$currentdir/$file' title='$file'><em-pdf>" . padstring($file, 20) . "</em-pdf><span></span><img src='" . GALLERY_ROOT . "images/filetype_" . $extension . ".png' width='$thumb_size' height='$thumb_size' alt='$file' /></a>$filename_caption</li>");
} }
} }
} }
closedir($handle); closedir($handle);
} else die("ERROR: Could not open ".htmlspecialchars(stripslashes($currentdir))." for reading!"); } else {
die("ERROR: Could not open ".htmlspecialchars(stripslashes($currentdir))." for reading!");
}
//----------------------- //-----------------------
// SORT FILES AND FOLDERS // SORT FILES AND FOLDERS
//----------------------- //-----------------------
if (sizeof($dirs) > 0) if (sizeof($dirs) > 0) {
{ foreach ($dirs as $key => $row) {
foreach ($dirs as $key => $row)
{
if ($row["name"] == "") { if ($row["name"] == "") {
unset($dirs[$key]); //Delete empty array entries unset($dirs[$key]); //Delete empty array entries
continue; continue;
@ -345,10 +326,9 @@ if (sizeof($dirs) > 0)
} }
@array_multisort($$sorting_folders, $sortdir_folders, $name, $sortdir_folders, $dirs); @array_multisort($$sorting_folders, $sortdir_folders, $name, $sortdir_folders, $dirs);
} }
if (sizeof($files) > 0)
{ if (sizeof($files) > 0) {
foreach ($files as $key => $row) foreach ($files as $key => $row) {
{
if ($row["name"] == "") { if ($row["name"] == "") {
unset($files[$key]); //Delete empty array entries unset($files[$key]); //Delete empty array entries
continue; continue;
@ -363,14 +343,14 @@ if (sizeof($files) > 0)
//----------------------- //-----------------------
// OFFSET DETERMINATION // OFFSET DETERMINATION
//----------------------- //-----------------------
if (!isset($_GET["page"])) $_GET["page"] = 1; if (!isset($_GET["page"]))
$_GET["page"] = 1;
$offset_start = ($_GET["page"] * $thumbs_pr_page) - $thumbs_pr_page; $offset_start = ($_GET["page"] * $thumbs_pr_page) - $thumbs_pr_page;
if (!isset($_GET["page"])) $offset_start = 0;
$offset_end = $offset_start + $thumbs_pr_page; $offset_end = $offset_start + $thumbs_pr_page;
if ($offset_end > sizeof($dirs) + sizeof($files)) $offset_end = sizeof($dirs) + sizeof($files); if ($offset_end > sizeof($dirs) + sizeof($files))
$offset_end = sizeof($dirs) + sizeof($files);
if ($_GET["page"] == "all" || $lazyload) if ($_GET["page"] == "all" || $lazyload) {
{
$offset_start = 0; $offset_start = 0;
$offset_end = sizeof($dirs) + sizeof($files); $offset_end = sizeof($dirs) + sizeof($files);
} }
@ -378,48 +358,48 @@ if (sizeof($files) > 0)
//----------------------- //-----------------------
// PAGE NAVIGATION // PAGE NAVIGATION
//----------------------- //-----------------------
if (!$lazyload && sizeof($dirs) + sizeof($files) > $thumbs_pr_page) if (!$lazyload && sizeof($dirs) + sizeof($files) > $thumbs_pr_page) {
{
$page_navigation .= "$label_page "; $page_navigation .= "$label_page ";
for ($i=1; $i <= ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page); $i++) for ($i = 1; $i <= ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page); $i++) {
{
if ($_GET["page"] == $i) if ($_GET["page"] == $i)
$page_navigation .= "$i"; $page_navigation .= "$i";
else else
$page_navigation .= "<a href='?dir=" . $requestedDir . "&amp;page=" . ($i) . "'>" . $i . "</a>"; $page_navigation .= "<a href='?dir=" . $requestedDir . "&amp;page=" . ($i) . "'>" . $i . "</a>";
if ($i != ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page)) $page_navigation .= " | "; if ($i != ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page))
$page_navigation .= " | ";
} }
//Insert link to view all images //Insert link to view all images
if ($_GET["page"] == "all") $page_navigation .= " | $label_all"; if ($_GET["page"] == "all")
else $page_navigation .= " | <a href='?dir=" . $requestedDir . "&amp;page=all'>$label_all</a>"; $page_navigation .= " | $label_all";
else
$page_navigation .= " | <a href='?dir=" . $requestedDir . "&amp;page=all'>$label_all</a>";
} }
//----------------------- //-----------------------
// BREADCRUMB NAVIGATION // BREADCRUMB NAVIGATION
//----------------------- //-----------------------
if ($requestedDir != "") if ($requestedDir != "") {
{
$breadcrumb_navigation .= "<a href='?dir='>" . $label_home . "</a> $breadcrumb_separator "; $breadcrumb_navigation .= "<a href='?dir='>" . $label_home . "</a> $breadcrumb_separator ";
$navitems = explode("/", $_REQUEST['dir']); $navitems = explode("/", $_REQUEST['dir']);
for($i = 0; $i < sizeof($navitems); $i++) for ($i = 0; $i < sizeof($navitems); $i++) {
{ if ($i == sizeof($navitems)-1) {
if ($i == sizeof($navitems)-1) $breadcrumb_navigation .= $navitems[$i]; $breadcrumb_navigation .= $navitems[$i];
else } else {
{
$breadcrumb_navigation .= "<a href='?dir="; $breadcrumb_navigation .= "<a href='?dir=";
for ($x = 0; $x <= $i; $x++) for ($x = 0; $x <= $i; $x++) {
{
$breadcrumb_navigation .= $navitems[$x]; $breadcrumb_navigation .= $navitems[$x];
if ($x < $i) $breadcrumb_navigation .= "/"; if ($x < $i)
$breadcrumb_navigation .= "/";
} }
$breadcrumb_navigation .= "'>" . $navitems[$i] . "</a> $breadcrumb_separator "; $breadcrumb_navigation .= "'>" . $navitems[$i] . "</a> $breadcrumb_separator ";
} }
} }
} else $breadcrumb_navigation .= $label_home; } else {
$breadcrumb_navigation .= $label_home;
}
//Include hidden links for all images BEFORE current page so lightbox is able to browse images on different pages //Include hidden links for all images BEFORE current page so lightbox is able to browse images on different pages
for ($y = 0; $y < $offset_start - sizeof($dirs); $y++) for ($y = 0; $y < $offset_start - sizeof($dirs); $y++) {
{
$breadcrumb_navigation .= "<a href='" . $currentdir . "/" . $files[$y]["name"] . "' class='hidden' title='" . $img_captions[$files[$y]["name"]] . "'></a>"; $breadcrumb_navigation .= "<a href='" . $currentdir . "/" . $files[$y]["name"] . "' class='hidden' title='" . $img_captions[$files[$y]["name"]] . "'></a>";
} }
@ -428,11 +408,11 @@ for ($y = 0; $y < $offset_start - sizeof($dirs); $y++)
//----------------------- //-----------------------
if (count($dirs) + count($files) == 0) { if (count($dirs) + count($files) == 0) {
$thumbnails .= "<li>$label_noimages</li>"; //Display 'no images' text $thumbnails .= "<li>$label_noimages</li>"; //Display 'no images' text
if($currentdir == "photos") $messages = "It looks like you have just installed MiniGal Nano. Please run the <a href='system_check.php'>system check tool</a>"; if ($currentdir == "photos")
$messages = "It looks like you have just installed MiniGal Nano. Please run the <a href='system_check.php'>system check tool</a>";
} }
$offset_current = $offset_start; $offset_current = $offset_start;
for ($x = $offset_start; $x < sizeof($dirs) && $x < $offset_end; $x++) for ($x = $offset_start; $x < sizeof($dirs) && $x < $offset_end; $x++) {
{
$offset_current++; $offset_current++;
$thumbnails .= $dirs[$x]["html"]; $thumbnails .= $dirs[$x]["html"];
} }
@ -440,19 +420,17 @@ for ($x = $offset_start; $x < sizeof($dirs) && $x < $offset_end; $x++)
//----------------------- //-----------------------
// DISPLAY FILES // DISPLAY FILES
//----------------------- //-----------------------
for ($i = $offset_start - sizeof($dirs); $i < $offset_end && $offset_current < $offset_end; $i++) for ($i = $offset_start - sizeof($dirs); $i < $offset_end && $offset_current < $offset_end; $i++) {
{ if ($i >= 0) {
if ($i >= 0)
{
$offset_current++; $offset_current++;
$thumbnails .= $files[$i]["html"]; $thumbnails .= $files[$i]["html"];
} }
} }
//Include hidden links for all images AFTER current page so lightbox is able to browse images on different pages //Include hidden links for all images AFTER current page so lightbox is able to browse images on different pages
if ($i<0) $i=1; if ($i < 0)
for ($y = $i; $y < sizeof($files); $y++) $i = 1;
{ for ($y = $i; $y < sizeof($files); $y++) {
$page_navigation .= "<a href='" . $currentdir . "/" . $files[$y]["name"] . "' class='hidden' title='" . $img_captions[$files[$y]["name"]] . "'></a>"; $page_navigation .= "<a href='" . $currentdir . "/" . $files[$y]["name"] . "' class='hidden' title='" . $img_captions[$files[$y]["name"]] . "'></a>";
} }
@ -465,22 +443,22 @@ $messages = "<div id=\"topbar\">" . $messages . " <a href=\"#\" onclick=\"docume
// Read folder comment. // Read folder comment.
$comment_filepath = $currentdir . $file . "/comment.html"; $comment_filepath = $currentdir . $file . "/comment.html";
if (file_exists($comment_filepath)) if (file_exists($comment_filepath)) {
{
$fd = fopen($comment_filepath, "r"); $fd = fopen($comment_filepath, "r");
$comment = fread($fd, filesize($comment_filepath)); $comment = fread($fd, filesize($comment_filepath));
fclose($fd); fclose($fd);
} }
//PROCESS TEMPLATE FILE //PROCESS TEMPLATE FILE
if(GALLERY_ROOT != "") $templatefile = GALLERY_ROOT . "templates/integrate.html"; if (GALLERY_ROOT != "")
else $templatefile = "templates/" . $templatefile . ".html"; $templatefile = GALLERY_ROOT . "templates/integrate.html";
if(!$fd = fopen($templatefile, "r")) else
{ $templatefile = "templates/" . $templatefile . ".html";
if (!$fd = fopen($templatefile, "r")) {
echo "Template ".htmlspecialchars(stripslashes($templatefile))." not found!"; echo "Template ".htmlspecialchars(stripslashes($templatefile))." not found!";
exit(); exit();
} } else {
else
{
$template = fread($fd, filesize ($templatefile)); $template = fread($fd, filesize ($templatefile));
fclose($fd); fclose($fd);
$template = stripslashes($template); $template = stripslashes($template);
@ -498,15 +476,3 @@ if (file_exists($comment_filepath))
$template = preg_replace("/<% version %>/", "$version", $template); $template = preg_replace("/<% version %>/", "$version", $template);
echo "$template"; echo "$template";
} }
//-----------------------
//Debug stuff
//-----------------------
/* $mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = ($endtime - $starttime);
echo "This page was created in ".$totaltime." seconds";
*/
?>