PHP - Losowy obrazek jako link :)


(putineq) #1

Witam, mam taki malutki problem :] Chciałem na stronie zareklamować FIrefox-a i mogłem to zrobić w łatwy sposób, po przez podlinkowanie obrazka ale chciałem to jednak trochę ubarwić :slight_smile: Napisałem coś takiego :

<?php

$folder = opendir("firefox");

$i = 0;

while(false !=($plik = readdir($folder))){

if($plik != "." && $plik != ".."){

	$obrazki[$i]= $plik;

	$i++;

	}

}

closedir($folder);

$losowy=rand(0,count($obrazki)-1);

echo '';

?>

[/code]

A jednak nic nie wyświetla, co ciekawsze po umieszczeniu tego kodu w osobnym pliku firefox wszystko działa. Próbowałem zamiast wklejać kod do pliku strony zaincludować go jednak to także nic nie dało :slight_smile: Proszę o pomoc i z góry dzięki :wink:

P.s Ale wieje :roll:


(Juniorek) #2
<?php

/* Customise this line to change to your images folder */

$dir = 'ind_img'; $dh = opendir($dir);

/* The following loop scans the directory specified ignoring folders and Thumbs.db */

while (false !== ($filename = readdir($dh))) { if($filename == "Thumbs.db" || is_dir($filename)){ }else{ $tempArray = explode(".", $filename);

/* Add image file types in the code below */ if($tempArray[1] == "JPG" || $tempArray[1] == "gif" || $tempArray[1] == "png" || $tempArray[1] == "tif" || $tempArray[1] == "bmp"){ $files[] = $filename; } } }

/* Generate a random number */ $nooffildi = count($files); $nooffiles = ($nooffildi-1); srand((double)microtime()*1000000); $randnum = rand(0,$nooffiles);

/* print the result */ echo "
"; ?>

[/code]

masz:}


(putineq) #3

A dziękować :smiley: Tyle że nie działa :smiley: Dalej pusto w firefoxie nawet po wyczyszczeniu cach-a na wszelki :stuck_out_tongue:


(Patrol) #4
<?php

 $img[]='';

 $img[]='';

 $img[]='';

 $img[]='';


 $los=rand(0,count($img)-1);

 echo('
'.$img[$los].'');

 ?>[/code]

(putineq) #5

Hmm tego powyżej nie sprawdzałem ale w moim przypadku zadziałało to:

<?php


  # Katalog z obrazkami

  $dirname = './firefox';





  # Nie zmieniaj nic poniżej tej lini

  # --------------------------------- #


  $allowed_extensions = array('gif', 'jpg', 'jpeg', 'png', 'bmp');


  if(substr($dirname, -1) != '/') $dirname .= '/';


  $files = array();



  $dir = opendir($dirname);

  while($file = readdir($dir))

  {

    if(($file != '.') && ($file != '..'))

    {

      if(is_file($dirname.$file))

      {

        $extension = substr($file, (strrpos($file, '.')+1));

        $extension = strtolower($extension);


        if(in_array($extension, $allowed_extensions))

          $files[] = array('file' => $dirname.$file, 'extension' => $extension);

      }

    }

  }

  closedir($dir);



  $entropy = gettime();

  srand($entropy);

  $id = rand(0, (count($files)-1));



  if($files[$id]['extension'] == 'jpg') $files[$id]['extension'] = 'jpeg';


  header('Content-type: image/'.$files[$id]['extension']);

  header('Cache-Control: no-cache, must-revalidate');

  header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');



  readfile($files[$id]['file']);





  function gettime()

  {

    $ver = phpversion();

    if(intval($ver{0}) >= 5)

      return(microtime(true));

    else

    {

      list($usec, $sec) = explode(' ', microtime());

      settype($usec, 'double');

      settype($sec, 'int');


      return(doubleval($usec + $sec));

    }

  }


?>

(Juniorek) #6

mi działa :smiley:

jakie dałeś rozszerzenie pliku index :?:>


(Patrol) #7

Po co utrudniać sobie robotę z dużymi skryptami? Jeśli nie robisz jakiegoś wielkiego portalu używaj małych skryptów. Kiedy masz cpanel możesz odrazu edytować plik (dodać linijkę) i gotowe. Plusem takich małych skryptów jest to że jak reklamujesz kogoś stronkę to nie musisz wrzucać bannera do tego folderu, tylko dajesz link do banneru z serwera reklamodawcy i gotowe.


(putineq) #8

Spoko w php mam już jakieś doświadczenie :stuck_out_tongue: oczywiście że .php :slight_smile:

Ano mały portal to to nie jest :]