• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Script: Zufallsbild

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.

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>
 
Zurück
Oben