Gilles
Blogger
Hallihallo,
Leide rgibt es kein Showcase für die Programmiersachen. Deswegen pack ich es mal hier rein. Denn ein Tutorial ist mein Script nicht :)
Aber vielelicht hat jemand Interesse sich ein Zufallsbild erstellen zu lassen. Somit poste ich dann mal meinen Code. Kritik ist gerne erwünscht.
Wie nutze ich die Klasse?
Leide rgibt es kein Showcase für die Programmiersachen. Deswegen pack ich es mal hier rein. Denn ein Tutorial ist mein Script nicht :)
Aber vielelicht hat jemand Interesse sich ein Zufallsbild erstellen zu lassen. Somit poste ich dann mal meinen Code. Kritik ist gerne erwünscht.
PHP:
<?php
/**
* @author Gilles Meyer
*/
class RandomPicture {
/**
* Konstruktor der Klasse
*
* @param string $folder
* @param string $altText [optional]
*/
public function __construct( $folder, $altText = "Header Picture" ) {
$dir = $this->formatFolderString($folder);
// Ist der ordner lesbar?
if( is_readable($dir) ) {
$pics = $this->readDir($dir);
// nur Bild anzeigen wenn Bilder im Ordner waren
if(count($pics) > 0) {
echo $this->showPic($pics, $altText);
}
}
}
/**
* Gibt ein Zufälliges Bild zurück
*
* @param array $pics
* @param string $altText
* @return htmlImage
*/
public function showPic($pics, $altText) {
// Zufallszahl erstellen
$randomNumber = rand(0,(count($pics)-1));
//Zufälliges Bild in HTML-Form bringen
$pic = "<img src='". $pics[$randomNumber] ."' alt='". $altText ."' />";
return $pic;
}
/**
* Gibt den Folder-String mit einem / am Ende zurück
* Wandelt alle \ in / um
*
* @param String $string
* @return folderString
*/
public function formatFolderString( $string ) {
// Alle Backslashes durch Slashes ersetzen
$string = str_replace("\\","/",$string);
$count = (count($string) - 1);
// Ist am Ende ein / ?
if( $string[$count] == "/" ) {
return $string;
} else {
return $string."/";
}
}
/**
* Liest den Ordner mit Bilder aus und gibt ein Array mit den Dateien zurück
*
* @param string $dir
* @return imageArray
*/
public function readDir( $dir ) {
$pics = array();
$handle = opendir($dir);
while($file = readdir($handle)) {
if( $file != "." && $file != ".." ) {
if( !is_dir($dir.$file) ) {
array_push($pics,$dir.$file);
}
}
}
closedir($handle);
return $pics;
}
}
?>
Wie nutze ich die Klasse?
PHP:
<?php
include_once("RandomPicture.php");
?>
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<h1>
<?php
new RandomPicture("images","Mein Alternativtext");
?>
</h1>
</body>
</html>