Eine private Internetseite von Gernot Gawlik, geb. Schödel

goerni.de

Cicely Saunders
'.$title.' '; } function HTML_Footer() { return '
'; } function BuildUrl($url,$pars) { //wird ben?tigt, wenn die Galerie eingebettet wird $u=explode("?",$url); if(count($u)==1) return $url.'?'.$pars; else { if(!strpos($u[1],'galerie=')) return $url.'&'.$pars; else return substr($url,0,strpos($u[1],'galerie=')).'&'.$pars; } } function WriteConfig() { global $config,$config_path; $fp=fopen($config_path.'/parameter.inc','wb'); $s=" $val){ $s.='$config[\''.$var.'\'] = \''.$val."';\n"; } $s.="?>"; fwrite($fp,$s); fclose($fp); } //Galerie-Funktionen function GalerieInfo($id) { global $tablename; $sql="SELECT * FROM `$tablename` where `id`=$id"; $res=mysql_query($sql); $gal=mysql_fetch_array($res); //Galerie-Statistik $gal['anzahl_pics']=$gal['active_pics']=$gal['inactive_pics']=0; $stat=GalerieStatistik($gal['folder']); $gal['active_pics']=$stat['active_pics']; $gal['inactive_pics']=$stat['inactive_pics']; $gal['anzahl_pics']=$gal['active_pics']+$gal['inactive_pics']; //Alle id'S der Bilder einlesen $sql="SELECT * FROM `$tablename` where `folder`='".$gal['folder']."' and `pic`=1 and `active`=1 ORDER BY `pos`"; $res=mysql_query($sql); $gal['galpics']=Array(); while($row=mysql_fetch_array($res)) { $gal['galpics'][]=$row['id']; } return $gal; } function GalerieStatistik($folder) { global $tablename; $stat=Array(); $stat['active_pics']=$stat['inactive_pics']=0; $sql="SELECT `active`,Count(*) AS `anzahl` FROM `$tablename` WHERE `folder`='$folder' AND `pic`=1 GROUP BY `active`"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { while($row=mysql_fetch_array($res)) { if($row['active']==0) $stat['inactive_pics']=$row['anzahl']; if($row['active']==1) $stat['active_pics']=$row['anzahl']; } } return $stat; } function resizeImage($file,$maxw,$maxh,$path,$type="",$pathisfile=false) { global $ext; if($type=="") { if(preg_match("/.(jpg|jpeg)$/i", $file, $regs)) $type = $regs[1]; if(preg_match("/.(png)$/i", $file, $regs)) $type = $regs[1]; if(preg_match("/.(gif)$/i", $file, $regs)) $type = $regs[1]; } switch($type) { case "png": $function_image_create = "ImageCreateFromPng"; $function_image_new = "ImagePNG"; $ext="png"; break; case "gif": $function_image_create = "ImageCreateFromGif"; $function_image_new = "ImageGIF"; $ext="gif"; break; default: $function_image_create = "ImageCreateFromJpeg"; $function_image_new = "ImageJpeg"; $ext="jpg"; break; } $imagesize = getimagesize($file); $imgw = $imagesize[0]; $imgh = $imagesize[1]; $ratiow = $maxw / $imgw; $ratioh = $maxh / $imgh; if($ratiow < $ratioh) { $newh = $imgh * $ratiow; $neww = $maxw; } elseif($ratioh < $ratiow) { $neww = $imgw * $ratioh; $newh = $maxh; } elseif($ratiow == $ratioh) { $neww = $maxw; $newh = $maxh; } $thumb = imagecreatetruecolor($neww, $newh); $source = $function_image_create($file); imagecopyresampled($thumb, $source, 0, 0, 0, 0, $neww, $newh, $imgw, $imgh); //schreiben if($pathisfile==false) $function_image_new($thumb,$path.substr($file,strrpos($file,"/")+1)); else $function_image_new($thumb,$path); } function CreateThumbnails($tn) { global $config; if($tn[2]=="all") { $files=FilesInDir($tn[0]); foreach($files as $file) { $ext=""; $pic=resizeImage($tn[0].$file,$config['thumbnail_dimension'],$config['thumbnail_dimension'],$tn[1]); } } else { $pic=resizeImage($tn[0],$config['thumbnail_dimension'],$config['thumbnail_dimension'],$tn[1]); } } function MakeThumbnails($galid) { global $tablename,$config,$galerie_folders,$gal_path; $gal=GalerieInfo($galid); $sql="SELECT * FROM `$tablename` WHERE pic=1 AND `folder`='".$gal['folder']."'"; $res=mysql_query($sql); $picpath=($galerie_folders==1) ? $gal_path.$gal['folder'].'/' : $gal_path; if(mysql_num_rows($res)>0) { while($row=mysql_fetch_array($res)) { $pic=resizeImage($picpath.$row['file'],$config['thumbnail_dimension'],$config['thumbnail_dimension'],$picpath.'thumbnails/'); } } return '

Es wurden '.mysql_num_rows($res).' Thumbnails generiert.

'; } function FirstThumb($folder) { global $tablename; $sql="SELECT `file` FROM `$tablename` WHERE `pic`=1 AND `active`=1 AND `folder`='$folder' ORDER BY `pos`"; $res=mysql_query($sql); $row=mysql_fetch_row($res); return $row[0]; } function FilesInDir($dir) { $dh = opendir($dir); $files=Array(); while (false !== ($filename = readdir($dh))) { if ($filename != "." && $filename != ".." && !is_dir($dir.$filename)) { $files[] = $filename; } } return $files; } function GetGalPicName($path,$folder,$ext) { global $galerie_folders; if(substr($path,-1)!='/') $path.='/'; $n=(($galerie_folders==0)? $folder."_" :'')."0001$ext"; $i=1; while(is_file("$path$n")) { $n=(($galerie_folders==0)? $folder."_" :'').sprintf("%04d",++$i).$ext; } return $n; } function CopyMove($picid,$newgal,$copymove) { global $galerie_folders,$tablename,$gal_path; //Pfade des Bildes $res=mysql_query("SELECT * FROM `$tablename` WHERE `id`=$picid"); $row=mysql_fetch_array($res); if($galerie_folders==1) { $stamm=$gal_path.$row['folder'].'/'; } else { $stamm=$gal_path; } $fpath=$stamm.$row['file']; $ftnpath=$stamm.'thumbnails/'.$row['file']; $ext=strtolower(strrchr($fpath,".")); //in die neue Galerie $gal=GalerieInfo($newgal); if($galerie_folders==1) { $stamm=$gal_path.$gal['folder'].'/'; } $newname=GetGalPicName($stamm,$gal['folder'],$ext); $newpath=$stamm.$newname; WritePic2Galery($newgal,$newname,$row['comment'],$row['active'],$row['title']); if($copymove==1) { mysql_query("DELETE FROM `galerie` WHERE `id`=".$_POST['pic']); //File rename rename($fpath,$newpath); rename($ftnpath,$stamm.'thumbnails/'.$newname); } else { //File kopieren copy($fpath,$newpath); copy($ftnpath,$stamm.'thumbnails/'.$newname); } return 1; } function WritePic2Galery($gal_id,$pic,$comment,$flag=0,$title='') { global $tablename,$config,$galerie_folders,$gal_path; //Galerie-Infos $gal=GalerieInfo($gal_id); //ist Bild schon da ? $sql="SELECT * FROM `$tablename` where `file`='$pic' and `folder`='".$gal['folder']."' and `pic`=1"; $res=mysql_query($sql); $new=true; if($res) { $row=mysql_fetch_array($res); $id=$row['id']; $new=!isset($row['id']); } $picpath=($galerie_folders==1) ? $gal_path.$gal['folder'].'/'.$pic : $gal_path.$pic; $imagesize = getimagesize($picpath); $imgw = $imagesize[0]; $imgh = $imagesize[1]; $sql_set="set `width`=$imgw, `height`=$imgh,`size`=".filesize($picpath).",`folder`='".$gal['folder']."',`pic`=1,`file`='$pic',`title`='$title',`comment`='$comment',`active`=$flag"; if($new==true) $sql="INSERT INTO `$tablename` $sql_set,`pos`=".NewPosition($gal['folder'],$gal['gruppe'],false); else $sql="UPDATE `$tablename` $sql_set WHERE `id`=$id"; mysql_query($sql) or die("Fehler bei Bildeintrag ($sql)"); return $gal; } function ValidGalFolder($folder) { global $tablename; $folder=strtolower($folder); $folder=strtr($folder,Array(" "=>"","?"=>"ae","?"=>"oe","?"=>"ue","?"=>"ss")); $sql="SELECT * FROM `$tablename` WHERE `folder`='$folder'"; $res=mysql_query($sql); $anz=mysql_num_rows($res); if($anz==0) return true; else return false; } function HumanSize($size,$dec = 1) { $sizes = array('B', 'KB', 'MB', 'GB'); $count = count($sizes); $i = 0; while ($size >= 1024 && ($i < $count - 1)) { $size /= 1024; $i++; } return round($size, $dec) . ' ' . $sizes[$i]; } function DeleteGalery($folder,$rel_path='') { global $tablename,$config; //physikalisches l?schen $sql="SELECT * FROM `$tablename` WHERE `folder`='$folder' AND `pic`=1"; $res=mysql_query($sql); while($row=mysql_fetch_array($res)) { $picpath=($config['galerie_folders']==1) ? $rel_path.$gal_path.$folder.'/'.$row['file'] : $rel_path.$gal_path.$row['file']; $pictnpath=($config['galerie_folders']==1) ? $rel_path.$gal_path.$folder.'/thumbnails/'.$row['file'] : $rel_path.$gal_path.'thumbnails/'.$row['file']; unlink($picpath); unlink($pictnpath); } if($config['galerie_folders']==1) {unlink($rel_path.$gal_path.$folder.'/thumbnails');unlink($rel_path.$gal_path.$folder);} //Datenbankeintr?ge l?schen $sql="DELETE FROM `$tablename` WHERE `folder`='$folder'"; mysql_query($sql); } function ChangePosition($gal,$op,$p,$isGal=false,$gruppe='') { global $tablename,$config; if($isGal===false) { $sql="SELECT `id` FROM `$tablename` WHERE `pic`=1 AND `folder`='$gal' AND `pos`=$op"; $res=mysql_query($sql); $row=mysql_fetch_row($res); $id=$row[0]; $sql="SELECT `id` FROM `$tablename` WHERE `pic`=1 AND `folder`='$gal' AND `pos`=$p"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $row=mysql_fetch_row($res); $res2=mysql_query("UPDATE `$tablename` SET `pos`=$op WHERE `id`=".$row[0]); } $res2=mysql_query("UPDATE `$tablename` SET `pos`=$p WHERE `id`=$id"); } else { if($config['galgruppen']==0) $res=mysql_query("SELECT `id` from `$tablename` WHERE `pic`=0 AND `pos`='$p'"); else $res=mysql_query("SELECT `id` from `$tablename` WHERE `pic`=0 AND `gruppe`='$gruppe' AND `pos`='$p'"); if(mysql_num_rows($res)>0) { $row=mysql_fetch_row($res); $res2=mysql_query("UPDATE `$tablename` SET `pos`=$op WHERE `id`=".$row[0]); } $res2=mysql_query("UPDATE `$tablename` SET `pos`=$p WHERE `id`=$gal"); } } function NewPosition($gal,$gruppe,$isGal=true) { global $tablename,$config; if($isGal===true) { if($config['galgruppen']==0) $res=mysql_query("SELECT MAX(`pos`) from `$tablename` WHERE `pic`=0 AND `gruppe`='$gruppe'"); else $res=mysql_query("SELECT MAX(`pos`) from `$tablename` WHERE `pic`=0 AND `gruppe`='$gruppe'"); } else { $res=mysql_query("SELECT MAX(`pos`) from `$tablename` WHERE `pic`=1 AND `folder`='$gal'"); } if(mysql_num_rows($res)>0) { $row=mysql_fetch_row($res); return $row[0]+1; } else { return 1; } } function SortAll($galerie="") { global $tablename; $sql="SELECT * FROM `$tablename` ".(($galerie=="") ? "" : "WHERE `pic`=1 AND `folder`='$galerie'")." order by `pic`,`gruppe`,`folder`"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $last=1; $i=1; while($row=mysql_fetch_array($res)) { if($row['pic']==0) { if($row['gruppe']!=$last) { $last=$row['gruppe']; $i=1; } } else { if($row['folder']!=$last) { $last=$row['folder']; $i=1; } } $res2=mysql_query("Update `galerie` SET `pos`=$i WHERE `id`=".$row['id']); $i++; } } } function getZipFileContents($file_contents, $full_information = FALSE) { /* getting position of central directory */ $file_size = strlen($file_contents); $pointer = $file_size - 277; if ($pointer < 0) { $pointer = 0; } $pointer = strpos($file_contents, "\x50\x4b\x05\x06\x00\x00\x00\x00", $pointer) + 4; /* reading central directory */ $central_directory = unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', substr($file_contents, $pointer, 18)); $pointer = $central_directory['offset']; $archive_data = array(); /* getting archive data */ for ($t = $central_directory['disk_start']; $t < $central_directory['disk_entries']; $t++) { /* reading central file header */ $central_file_header = unpack('vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', substr($file_contents, $pointer, 46)); /* extracting filename */ $filename = substr($file_contents, $pointer + 46, $central_file_header['filename_len']); /* extracting extrafield */ $extra = substr($file_contents, $pointer + 46 + $central_file_header['filename_len'], $central_file_header['extra_len']); /* extracting comment */ $comment = substr($file_contents, $pointer + 46 + $central_file_header['filename_len'] + $central_file_header['extra_len'], $central_file_header['comment_len']); $pointer += 46 + $central_file_header['filename_len'] + $central_file_header['extra_len'] + $central_file_header['comment_len']; /* filter directories */ if ($filename{strlen($filename) - 1} != '/') { /* calculating position of compressed content */ $content_start = $central_file_header['offset'] + 30 + $central_file_header['filename_len'] + $central_file_header['extra_len']; if ($central_file_header['compression'] == 0) { /* extracting uncompressed content */ $content = substr($file_contents, $content_start, $central_file_header['compressed_size']); } else { /* extracting compressed content */ $content = substr($file_contents, $content_start, $central_file_header['compressed_size']); $content .= pack('VV', $central_file_header['crc'], $central_file_header['size']); /* decompressing content */ $content = @gzinflate($content); } /* getting filestatus */ $status = 'ok'; if ($content === FALSE && $status == 'ok') { $status = 'err_decompress'; } if (crc32($content) != $central_file_header['crc'] && $status == 'ok') { $status = 'err_crc'; } if (strlen($content) != $central_file_header['size'] && $status == 'ok') { $status = 'err_length'; } /* saving information */ if ($full_information) { if ($central_file_header['mdate'] && $central_file_header['mtime']) { $hour = ($central_file_header['mtime'] & 0xF800) >> 11; $minute = ($central_file_header['mtime'] & 0x07E0) >> 5; $seconde = ($central_file_header['mtime'] & 0x001F)*2; $year = (($central_file_header['mdate'] & 0xFE00) >> 9) + 1980; $month = ($central_file_header['mdate'] & 0x01E0) >> 5; $day = $central_file_header['mdate'] & 0x001F; $timestamp = mktime($hour, $minute, $seconde, $month, $day, $year); } else { $timestamp = time(); } $i = count($archive_data); $archive_data[$i] = array(); $archive_data[$i]['filename'] = $filename; $archive_data[$i]['timestamp'] = $timestamp; $archive_data[$i]['comment'] = $comment; $archive_data[$i]['extrafield'] = $extra; $archive_data[$i]['status'] = $status; if ($status == 'ok') { $archive_data[$i]['content'] = $content; } else { $archive_data[$i]['content'] = FALSE; } } else { if($status == 'ok') { $archive_data[$filename] = $content; } else { $archive_data[$filename] = FALSE; } } } } return $archive_data; } function ImportZipfile($fname,$gal,$galid) { global $gal_path,$galerie_folders,$config,$tmp_path,$picpath; $zip=implode('',file($tmp_path.$fname)); $f=getZipFileContents($zip); foreach($f as $var=>$val){ $endung=strtolower(strrchr($var,".")); $erlaubt=ARRAY(".gif",".jpg",".png",".zip"); if (!in_array($endung,$erlaubt)) { return '

Dieser Dateityp ist nicht erlaubt ! (*.jpg,*.gif,*.png)

'; } else { $picpath=($galerie_folders==1) ? $gal_path.$gal['folder'].'/' : $gal_path; $pname=GetGalPicName($picpath,$gal['folder'],$endung); //Bild speichern $fp=fopen($tmp_path.$pname,"w"); fwrite($fp,$val); fclose($fp); //echo ASCII($var).'
'; $imagesize = getimagesize($tmp_path.$pname); $imgw = $imagesize[0]; $imgh = $imagesize[1]; if($imgw>$config['pic_maxwidth'] || $imgh>$config['pic_maxheight']) { resizeImage($tmp_path.$pname,$config['pic_maxwidth'],$config['pic_maxheight'],$picpath.$pname,substr($endung,1),true); unlink($tmp_path.$pname); } else { if (rename($tmp_path.$pname,$picpath.$pname)) @chmod($picpath.$pname,0777); else { return '

Fehler beim Hochladen !

'; } } $tn[0]=$picpath.$pname; $tn[1]=$picpath.'thumbnails/'; $tn[2]='single'; CreateThumbnails($tn); WritePic2Galery($galid,$pname,''); } } return '

Archiv wurde erfolgreich importiert.

'; } function ASCII($s) { $k=''; for($i=0;$i127 && substr($s,$i,1)!=".") ? '_' : substr($s,$i,1); } return $k; } function ImportPic($pic,$galid) { global $tmp_path,$galerie_folders,$gal_path,$config; $endung=strtolower(strrchr($pic,".")); $erlaubt=ARRAY(".gif",".jpg",".png",".zip"); if (!in_array($endung,$erlaubt)) return '

Dieser Dateityp ist nicht erlaubt ! (*.jpg,*.gif,*.png)

'; else { $gal=GalerieInfo($galid); if($endung==".zip") { return ImportZipfile($pic,$gal,$galid); } else { $picpath=($galerie_folders==1) ? $gal_path.$gal['folder'].'/' : $gal_path; $pname=GetGalPicName($picpath,$gal['folder'],$endung); //echo ASCII($var).'
'; $imagesize = getimagesize($tmp_path.$pic); $imgw = $imagesize[0]; $imgh = $imagesize[1]; if($imgw>$config['pic_maxwidth'] || $imgh>$config['pic_maxheight']) { resizeImage($tmp_path.$pic,$config['pic_maxwidth'],$config['pic_maxheight'],$picpath.$pname,substr($endung,1),true); } else { if (rename($tmp_path.$pic,$picpath.$pname)) @chmod($picpath.$pname,0777); else { return '

Fehler beim Hochladen !

'; } } $tn[0]=$picpath.$pname; $tn[1]=$picpath.'thumbnails/'; $tn[2]='single'; CreateThumbnails($tn); WritePic2Galery($galid,$pname,''); return '

Bild '.$pic.' wurde erfolgreich importiert.

'; } } } /** * Zip file creation class. * Makes zip files. * * Based on : * * http://www.zend.com/codex.php?id=535&single=1 * By Eric Mueller * * http://www.zend.com/codex.php?id=470&single=1 * by Denis125 * * a patch from Peter Listiak for last modified * date and time of the compressed file * * Official ZIP file format: http://www.pkware.com/appnote.txt * * @access public */ class zipfile { /** * Array to store compressed data * * @var array $datasec */ var $datasec = array(); /** * Central directory * * @var array $ctrl_dir */ var $ctrl_dir = array(); /** * End of central directory record * * @var string $eof_ctrl_dir */ var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; /** * Last offset position * * @var integer $old_offset */ var $old_offset = 0; /** * Converts an Unix timestamp to a four byte DOS date and time format (date * in high two bytes, time in low two bytes allowing magnitude comparison). * * @param integer the current Unix timestamp * * @return integer the current date in a four byte DOS format * * @access private */ function unix2DosTime($unixtime = 0) { $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime); if ($timearray['year'] < 1980) { $timearray['year'] = 1980; $timearray['mon'] = 1; $timearray['mday'] = 1; $timearray['hours'] = 0; $timearray['minutes'] = 0; $timearray['seconds'] = 0; } // end if return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1); } // end of the 'unix2DosTime()' method /** * Adds "file" to archive * * @param string file contents * @param string name of the file in the archive (may contains the path) * @param integer the current timestamp * * @access public */ function addFile($data, $name, $time = 0) { $name = str_replace('\\', '/', $name); $dtime = dechex($this->unix2DosTime($time)); $hexdtime = '\x' . $dtime[6] . $dtime[7] . '\x' . $dtime[4] . $dtime[5] . '\x' . $dtime[2] . $dtime[3] . '\x' . $dtime[0] . $dtime[1]; eval('$hexdtime = "' . $hexdtime . '";'); $fr = "\x50\x4b\x03\x04"; $fr .= "\x14\x00"; // ver needed to extract $fr .= "\x00\x00"; // gen purpose bit flag $fr .= "\x08\x00"; // compression method $fr .= $hexdtime; // last mod time and date // "local file header" segment $unc_len = strlen($data); $crc = crc32($data); $zdata = gzcompress($data); $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); // fix crc bug $c_len = strlen($zdata); $fr .= pack('V', $crc); // crc32 $fr .= pack('V', $c_len); // compressed filesize $fr .= pack('V', $unc_len); // uncompressed filesize $fr .= pack('v', strlen($name)); // length of filename $fr .= pack('v', 0); // extra field length $fr .= $name; // "file data" segment $fr .= $zdata; // "data descriptor" segment (optional but necessary if archive is not // served as file) $fr .= pack('V', $crc); // crc32 $fr .= pack('V', $c_len); // compressed filesize $fr .= pack('V', $unc_len); // uncompressed filesize // add this entry to array $this -> datasec[] = $fr; // now add to central directory record $cdrec = "\x50\x4b\x01\x02"; $cdrec .= "\x00\x00"; // version made by $cdrec .= "\x14\x00"; // version needed to extract $cdrec .= "\x00\x00"; // gen purpose bit flag $cdrec .= "\x08\x00"; // compression method $cdrec .= $hexdtime; // last mod time & date $cdrec .= pack('V', $crc); // crc32 $cdrec .= pack('V', $c_len); // compressed filesize $cdrec .= pack('V', $unc_len); // uncompressed filesize $cdrec .= pack('v', strlen($name) ); // length of filename $cdrec .= pack('v', 0 ); // extra field length $cdrec .= pack('v', 0 ); // file comment length $cdrec .= pack('v', 0 ); // disk number start $cdrec .= pack('v', 0 ); // internal file attributes $cdrec .= pack('V', 32 ); // external file attributes - 'archive' bit set $cdrec .= pack('V', $this -> old_offset ); // relative offset of local header $this -> old_offset += strlen($fr); $cdrec .= $name; // optional extra field, file comment goes here // save to central directory $this -> ctrl_dir[] = $cdrec; } // end of the 'addFile()' method /** * Dumps out file * * @return string the zipped file * * @access public */ function file() { $data = implode('', $this -> datasec); $ctrldir = implode('', $this -> ctrl_dir); return $data . $ctrldir . $this -> eof_ctrl_dir . pack('v', sizeof($this -> ctrl_dir)) . // total # of entries "on this disk" pack('v', sizeof($this -> ctrl_dir)) . // total # of entries overall pack('V', strlen($ctrldir)) . // size of central dir pack('V', strlen($data)) . // offset to start of central dir "\x00\x00"; // .zip file comment length } // end of the 'file()' method } // end of the 'zipfile' class /* * zip file extraction function * * REDUCED TO THE MOST COMMON OPTIONS: * - no password decryption * - no splitted archives * * Copyright (C) 2004 Niels J?ckel * * * @param string $file_contents this is the *full* content of the .zip file * @param $full_information optional parameter to get full information (TRUE | FALSE) * * @return array $contents * */ ?>