8791 sujets

Développement web côté serveur, CMS

Salut,

Je viens de développer ceci et j'aimerai l’améliorer ou en parler alors je le partage.

Voici le fichier image.php
<?php

$dossier = "mondossier/";
$handle = dir($dossier);

while (false !== ($fichier = $handle->read())) {
	if(is_file($dossier.$fichier)) {
		$fichiers[] = $dossier.$fichier;
		
	}
}
$handle->close();

$aleatoire = rand(0, count($fichiers)-1);

$image = $fichiers[$aleatoire];

$tampon = file_get_contents($image);

$image_info = getimagesize($image);

header("Content-type: ".$image_info['mime']);

echo $tampon;

?>


Pour le moment, ce bout de code prends tous les fichiers d'un dossier et en fais une image en respectant le type, il n'y a pas de filtre lors de la récupération des fichiers.

On l'apelle comme ceci :
<img src="image.php" >


Qu'en pensez vous ? Smiley lol

Cordialement
salut,

perso j'aurais plutot utilisé glob
<?php
$file = glob('*.extension');
$image = $file[ array_rand($file) ] ;
tampon = file_get_contents($image);
$image_info = getimagesize($image);
header("Content-type: ".$image_info['mime']);
echo $tampon;
?>


pour l'affichage j'aurais plutôt vu l'utilisation de la lib gd mais pourquoi pas Smiley biggrin

le glob permet d'avoir un contrôle sur l'extension plus simplement qu'avec la lecture du répertoire mais c'est aussi une solution fonctionnel.

Par contre la array_rand me parait être plus intéressant que le rand + count mais la différence doit être infime Smiley cligne

@+
Je pense que ton script n'est pas assez optimisé pour une utilisation en production. Smiley lol
Modifié par jb_gfx (16 Sep 2011 - 09:53)
moogliBZH a écrit :
perso j'aurais plutot utilisé glob


Mais quel repertoire prends t'il ? le rep. ou ce trouve le fichier php appellé ?

Merci à vous deux!
moogliBZH a écrit :
glob ?

Oui quel dossier ouvre t'il ?

parce que mon fichier image n'est pas à la racine des images...

Ok j'ai compris :
glob("{includes/*.php,core/*.php}",GLOB_BRACE);

Modifié par Vincent_nk (18 Sep 2011 - 23:13)
Affiche un JPG aléatoirement dans le meme dossier que le fichier PHP.

Merci à moogliBZH Smiley smile

<?php

$files = glob("./*.jpg");

$image = $files[ array_rand($files) ] ;

$tampon = file_get_contents($image);

$image_info = getimagesize($image);

header("Content-type: ".$image_info['mime']);

echo $tampon;

?>