accueil MCSA astuces photos




PHP - Afficher des photos dans une page web

introduction et
connexion à une base

1- 2- 3
afficher une
image aléatoirement

1- 2
récupérer la résolution
de l'écran

manipulations d'images
1- 2- 3


Voici un exemple pour afficher des photos et
leur miniatures sur une page web en php.

Afin de pouvoir traiter toutes les images
de façon homogène, il convient de leur appliquer
un certain nombre de règles telles que renommer
les fichiers en minuscules (ou tous en majuscules)
ou la supression des
espaces dans le nom des fichiers.

Les exemples qui suivent n'utilisent que
des fichiers au format JPG et impliquent
que PHP soit compilé avec les bibliothèques
nécessaires.

<?php

$dossier=opendir('images'); //ouvre le dossier
  			    //qui contient les images

//-------------------on met les fichiers dans 1 tableau-----

while ($fichier = readdir($dossier)) { //lit le dossier....

	if ( $fichier=="." or $fichier==".." or is_dir("images/".$fichier)) {

	continue;

	//.....pour évincer les noms de
	// de dossier, mettre tout
	// les fichiers dans 1 tableau
	
	}
	else{
	$files[] = $fichier;
	}
}
sort($files); //et les trier alphabétiquement
closedir($dossier);
?>


Tout les fichiers du dossier à traiter doivent être des
images au format jpg, sinon, il faut ajouter une vérification
de l'extension ou du type de fichier.

Les instructions suivantes sont utilisées :

opendir() ouvre un dossier.
closedir() ferme un dossier.
readdir() lit le contenu d'un dossier.
is_dir() vérifie si c'est un dossier.
sort() trie un tableau alphabétiquement.

Dans l'exemple ci-dessus, tout les fichiers du dossier
"images" seront classées en ordre alphabétique dans le
tableau "$files[]".

Evidemment, "$files" ne contient que le nom des images, pas le fichier lui-même. Ils sont ensuite accessibles :

fichier1 = $files[0];
fichier2 = $files[1];
fichier3 = $files[2];
etc....

Ou comme ci dessous, à l'aide de
d'une "boucle"
foreach (pour chaque valeur du
tableau "$files" sous le nom "$image").

<?php

foreach ( $files as $image ){

	//remplace les espaces éventuels
	//dans le nom du fichier.
	$image2 = str_replace(" ","_",$image);
	
	//on met le nom du
	// fichier en minuscule et le renomme.
	rename("images/".$image,"images/".strtolower($image));
	$image = strtolower($image2);
	
	//on récupère la taille de l'image.
	$taille=getimagesize("images/".$image);
	$largeur=$taille[0];
	$hauteur=$taille[1];

print "image ".$image." largeur : ".$largeur." hauteur : ".$hauteur."<br>\n";

}

?>

Les instructions suivantes sont utilisées :

str_replace(x,y,z) remplace x par y dans la chaine z.
strtolower() transforme en minuscule.
rename() renome un fichier.
getimagesize retourne un tableau de 4 éléments.
[0] étant la largeur de l'image et [1] sa hauteur.

le point "." est l'équivalent d'un signe "+" mais
pour des caractères.

SUITE



Une question ? Donnez votre avis, ou trouver encore plus d'infos : Le Forum