Page 1 sur 2
images qui s'affiche en petites icones
Posté : 09 nov. 2012, 22:28
par sets
bonsoir,
Petit probleme d'image qui s'affiche en genre de vignette comme ceci
http://animal-suspect.com/
Une solution pour les affichés correctement ?
voici le code utilisé:
Code : Tout sélectionner
<?php
$dir = './image';
$image_largeur = 150;
$valide_extensions = array('jpg', 'jpeg', 'gif', 'png');
$Ressource = opendir($dir);
while($fichier = readdir($Ressource))
{
$berk = array('.', '..');
$test_Fichier = $dir.$fichier;
if(!in_array($fichier, $berk) && !is_dir($test_Fichier))
{
$ext = pathinfo($fichier, PATHINFO_EXTENSION);
if(in_array($ext, $valide_extensions))
{
echo '
<div style="float:left; width:'.$image_largeur.'px; margin-right:10px">
<img src="'.Logo2.jpg.'" style="'.$image_largeur.'px" />
</div>';
}
}
}
?>
Merci de votre aide
Re: images qui s'affiche en petites icones
Posté : 09 nov. 2012, 23:08
par juliette
<img img"'.Logo2.jpg.'" width="'.$image_largeur.'px" />
Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 03:22
par sets
Bonjour,
Merci pour votre réponse,
j'ai appliqué votre code et maintenant j'ai des carrés plus grand mais toujours avec la même petite icone bizarre.
Mes images ne s'affiche tjrs pas comme vous pouvez le voir.
je n'y comprend plus rien :'(
Une autre idée?
Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 04:01
par sam12
Normal, la balise sort comme ça:
<img src"./image/Logo2.jpg" width="150px" />
Il faut pouvoir transformer en:
<img src="./image/Logo2.jpg" width="150px" />
Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 11:56
par sets
Bonjour sam,
effectivement ça marche !
par contre j'ai 5 fois la même images qui sort du coup.
j'ai une chtite question est-il possible d’appeler 3 images aléatoires de ce dossier ?
Merci
Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 15:33
par moogli
Salut.
Oui c'est possible.
Tu peux aussi faire beaucoup plus simple que tu as fait avec la fonction glob
L'avantage c'est que tu aura un tableau sur lequel utiliser la fonction array_rand et prendre les 3 1er éléments
@+
Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 16:08
par sets
Slt,
Alors la je dis chapeau Moogli tu m'as réglé ça en deux phrases xD! Génial!
Si je peux abuser sur une chose:
Ta manière de faire fonctionne trés bien dans mon dossier
image à la racine de mon site.
Par contre si je veux afficher les images de mes membres en remplaçant le dossier
image par le dossier
forum/files (qui est le dossier ou mes membres upload leur fichiers joints) ça ne marche pas car les fichiers dedans se nomment 2_3bc2eed4fa3f1d0cbf54045228302b70 à la place de logo2.jpg.
Si tu connais un moyen de les afficher ? la je serai aux anges
et par la même occasion comment en afficher 3 aléatoire au lieu d'une?
voici mon code:
<?php
$dossier = 'image';
$dossier_images = $dossier.'/*.{jpg,jpeg,gif,png}';
$tab_dossier = glob($dossier_images,GLOB_BRACE);
$img_aleatoire = $tab_dossier[array_rand($tab_dossier)];
$max_width = 100;//maximum largeur acceptable
$max_height = 100;//maximum hauteur acceptable
list($width, $height) = getimagesize($img_aleatoire);
$ratioh = $max_height/$height;
$ratiow = $max_width/$width;
$ratio = min($ratioh, $ratiow);
$ratio = $ratio <= 1 ? $ratio : 1;// uniquement si l'on ne veut pas agrandir les photos de plus petites dimensions que $max_width ou $max_height
$width = intval($ratio*$width);
$height = intval($ratio*$height);
echo '<img src="'.$img_aleatoire.'" width="'.$width.'" height="'.$height.'" alt="image" />';
?>
Encore Merci en tout cas pour cette réponse!
Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 17:37
par moogli
pour afficher plusieurs images utilise l'exemple de la doc avec le second paramètre de la fonction array_rand.
en clair
- $list = glob( ...);
- $fichierRetenu = array_rand($list, $nomDeFichier);
pour l'affichage un foreach, avec dedans le code que tu as a partir de la ligne du getimagesize.
si te fichier n'on pas d'extension récupère tout mais il est préférable d'avoir une extension pour filtre (sauf si tu est certain qu'il n'y a que des images).
@+
Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 17:39
par sam12
Sans certitude, je dirais avec un foreach en jouant sur les clés.
Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 17:42
par moogli
en jouant sur les clefs ?
array_rand retourne des clefs prise aléatoirement dans un tableau (1 ou plusieurs suivant le second paramètre), a partir du la tu parcourt le tableau résultat avec foreach et tu fait appel à la valeur ($tableauInitial[ $valeurCourantDuForeach ]).
@+
Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 17:46
par sam12
Oui, je me suis mal exprimé. En jouant sur les clés du array_rand et non du foreach

Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 18:39
par sets
re,
dsl mais je comprend pas vraiment ou je choisie d'afficher 3 images au lieu d'une dsl je suis vraiment pas fort la dedans ...
Je sais pas ce qu'est le $tableauInitial[ $valeurCourantDuForeach].
Si vous pouvais me dire quoi mettre et ou ça serait super que je comprenne car la dit comme ça il faut quand même avoir de bonnes bases pour comprendre tout.
Sinon tant pis j'appelerais 2 fois a 2 endroit différents systeme D oblige
Merci bien
Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 20:33
par sets
non j'ai beau essayer de comprendre je n'y arrive pas, je ne vois pas ce qu'est ce foreach comme je vous dit je débute dans le php c'est vraiment pas facile.
Je fouille tellement partout dans pleins de sites qui parlent de manières différentes de choses qu'ils connaissent ou moi j’y connais pas grand chose que je m’emmêlent les pinceaux je fini par plus rien comprendre.
je ne vois pas ce qu'est :
-foreach
-En jouant sur les clés ?
-($tableauInitial[ $valeurCourantDuForeach ])
-a partir du la tu parcourt le tableau résultat avec foreach et tu fait appel à la valeur
-utilise l'exemple de la doc avec le second paramètre de la fonction
-si te fichier n'on pas d'extension récupère tout (comment ?)
quand vous parlez entre vous Sam et Moogli vous y voyez clair mais moi j'y vois rien
Ce sont des choses que je découvre.
Je comprend bien quand les codes sont la et que je peux les décortiquer et que je fais des test.
Mais de la à rajouter des phrases et les composer de moi même je ne sais pas comment faire c'est trop dsl :/
me = néophyte

Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 22:38
par sets
Personne?

Re: images qui s'affiche en petites icones
Posté : 10 nov. 2012, 23:32
par moogli
Le
foreach permet de parcourir un objet ou un tableau et cela sans ce soucier des clefs de ton tabeau.
Code : Tout sélectionner
<?php
$dossier = 'image';
$dossier_images = $dossier.'/*.{jpg,jpeg,gif,png}';
$tab_dossier = glob($dossier_images,GLOB_BRACE);
$indexImage = array_rand($tab_dossier,3);
foreach($indexImage as $index) {
$max_width = 100;//maximum largeur acceptable
$max_height = 100;//maximum hauteur acceptable
list($width, $height) = getimagesize($tab_dossier[$index]);
$ratioh = $max_height/$height;
$ratiow = $max_width/$width;
$ratio = min($ratioh, $ratiow);
$ratio = $ratio <= 1 ? $ratio : 1;// uniquement si l'on ne veut pas agrandir les photos de plus petites dimensions que $max_width ou $max_height
$width = intval($ratio*$width);
$height = intval($ratio*$height);
echo '<img src="'.$tab_dossier[$index].'" width="'.$width.'" height="'.$height.'" alt="image" />';
}
?>
par exemple
@+