Images au hazard

martius
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 13:34

Salut,

comment fait-on pour avoir un script qui puisse faire :

- que à chaque fois qu'on réactualise, l'image change !
- et que ce script soit facile, que je n'ai qu'à mettre le nom d'un dossier, et le script piochera une image dans celui-ci !
- que l'image affichée soit une img réduite et que l'on puisse cliquer dessus pour afficher la grande !

Merci !

Ps : j'ai trouvé ca, mais ya pas d'image réduite...
http://www.phpscripts-fr.net/portions/portion.php?id=88

Mammouth du PHP | 859 Messages

26 avr. 2005, 13:41

Regarde du côté de getimagesize() et arrange toi pour faire des calculs de proportion d'image. En gros que suivant la hauteur, la largeur s'adpate de façon à réduire et non à déformer l'image.

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 15:26

Re,

oui, mais quel code dois-je mettre exactement et où ???

Merci beaucoup flitox :D :D :D :)

Mammouth du PHP | 859 Messages

26 avr. 2005, 16:08

Là où tu as de la chance c'est que j'avais besoin de développer un script pour afficher l'image aléatoire d'un dossier et je viens de le finir :
<?php
	$chem_img = "./images";
	$handle  = opendir($chem_img);
						
	while ($file = readdir($handle))
		{
			if($file != '..' && $file !='.')
				{ 
					if (!is_dir($chem_img."/".$file))
						{
							$listef[] = $file;
						}
				}
		}
	$random_img = rand(0, count($listef));
    $size = getimagesize($chem_img."/".$listef[$random_img]);
	$largeur_maxi = 180;
	if ($size[0] > $largeur_maxi)
		{
			$width = $largeur_maxi;
			$theight = ($size[0]/$largeur_maxi);
			$height = ($size[1]/$theight);
		}
	else
		{
			$width = $size[0]; $height = $size[1];
		}
	
	echo "<a href=\"".$chem_img."/".$listef[$random_img]."\" onclick=\"window.open(this.href,'_blank');return false;\"><img style=\"border: none; width: ".$width."px; height: ".$height."px\" src=\"".$chem_img."/".$listef[$random_img]."\" alt=\"".$listef[$random_img]."\" /></a>";
	closedir($handle);
?>
Si ça ne marche pas tu ne t'en prends qu'à toi car il marche très bien ;)
Modifié en dernier par flitox le 26 avr. 2005, 19:08, modifié 1 fois.

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 17:04

Salut,

il est TRES bien, mais je recois des fois, des messages type :
Warning: getimagesize(): Read error! in /home/martius/public_html/vignette.php on line 25
Je fais quoi ???

@+ :wink:

Ps : la page : http://www.trains-idf.net/vignette.php actualises plusieurs fois, et tu verras !

Mammouth du PHP | 859 Messages

26 avr. 2005, 17:11

Tu n'as QUE des images dans ce dossier?

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 17:11

Re,

oui , 2 jpg et 2 gif !

@+

Mammouth du PHP | 859 Messages

26 avr. 2005, 17:14

Pas de fichier caché?

Mon script est en ligne là et j'ai absolument aucune erreur

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 17:18

Re,

pas de fichier caché !! Montres ta pagge, stp !! Sinon, peut-être que j'ai mal mis le code !!!

@+ :wink:

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 18:31

Re,

combien ya-t-il d'images dans ton dossier ?

@+ :wink:

Mammouth du PHP | 859 Messages

26 avr. 2005, 18:58

117 images et si getimagesize() ne marche pas c'est qu'il n'arrive pas à lire une image (il essaye de trouver la largeur et la hauteur d'un fichier qui n'est pas une image d'où l'erreur).

Mammouth du PHP | 859 Messages

26 avr. 2005, 19:10

D'ailleurs, j'ai un peu modifié et optimisé le code parce que tu as vu que le mode vignette avait un problème avec les proportions largeur et hauteur.

C'est réglé, j'avais mis la mauvaise variable pour la hauteur dans le echo...

Pour le getimagesize(), si tu n'es pas convaincu, va sur mon site web, sous mon message, et regarde le menu de droite avec l'image aléatoire ;)