#35379505 · 27 Feb 2013, 05:49 · · პროფილი · პირადი მიმოწერა · ჩატი
აი მეც რაღაც გავაკეთე.
იმითაა განსხვავებული, რომ თუ არ გინდა სურათების სახელების მითითება და დირექტორიაში გაქვს თავმოყრილი, ხშირად ანახლებ და ასე შემდეგ, სკრიპტის ფაილში სახელების შეცვლა ხშირად მოუხერხებელია. მოკლედ. ამ სკრიპტს პირდაპირ ამოაქვს დირექტორიიდან სურათები ისე რომ არ გჭირდება მათი სახელების ამოწერა.
CODE | <?php
class RandomImage { private $dir, $images, $image; private $ds = '/'; private $valid = array('png','jpg','jpeg','ico','gif'); public function __construct($dir) { $this->dir = $this->format($dir); if ($this->dir === false) trigger_error('DIRECTORY_ERROR',E_USER_ERROR); $this->images = $this->browse(); $this->image = $this->show(); } public function __toString() { return $this->image; } private function format($dir) { $l = substr($dir, 0, 1); $t = substr($dir, -1, 1); if ($l == $dir) $dir = substr($dir, 1); if ($t != $dir) $dir = $dir.$this->ds; if (empty($dir) || !is_dir($dir)) return false; return $dir; } private function browse() { $files = scandir($this->dir, 1); $images = array(); foreach ($files as $n => $f) { $i = pathinfo($this->dir.$f); if (in_array($i['extension'],$this->valid)) { $f = str_replace(' ','%20',$f); $images[] = array($n => $f); } else unset($f); } return $images; } private function show() { if (empty($this->images)) return false; $count = (sizeof($this->images) - 1); $rand = rand(0, $count); return $this->dir.$this->images[$rand][$rand]; } } ?> |
და HTML კოდი სადაც გინდა, ოღონდ ის ზედა კოდი იმავე ფაილში უნდა იყოს.
HTML | <img src="<?php print(new RandomImage("img"));?>" /> |
თუ რამდენიმე ფაილი გაქვს მაშინ ის PHP კოდი შეგიძლია შეინახო ფაილში მაგალითად randomimage.php და იმ ფაილებში სადაც ესე გინდა აჩვენო სურათები ამ სურათის HTML კოდამდზე დაწერე
CODE | <?php require_once("randomimage.php") ?> |
|