Un code long à charger en PHP et pas en HTML
Fermé
LightBen
Messages postés
49
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
15 janvier 2015
-
20 nov. 2011 à 17:17
LightBen Messages postés 49 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 15 janvier 2015 - 23 nov. 2011 à 12:34
LightBen Messages postés 49 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 15 janvier 2015 - 23 nov. 2011 à 12:34
A voir également:
- Un code long à charger en PHP et pas en HTML
- Le code ascii en informatique - Guide
- Pc long a demarrer - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Editeur html - Télécharger - HTML
6 réponses
mpmp93
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
22 nov. 2011 à 11:25
22 nov. 2011 à 11:25
Bonjour,
Au lieu d'un boucle for, faire ceci:
Ici, c'est la variable $listePhotos qui contient la liste des photos à traiter. La boucle foreach va traiter chaque item séquentiellement. Plus besoin de nommer les photos 1;jpg, 2.jpg, etc... Vous pouvez utiliser n'importe quel nom.
A+
Au lieu d'un boucle for, faire ceci:
<?php $listePhotos = array('moi.jpg', 'lui.jpg', 'eux.jpg', 'nous.jpg'); ?> <ul> <?php foreach($listePhotos AS $key => $val): <li><a href="images/photos/big/<?php echo $val; ?>" title=""> <img src="images/photos/small/<?php echo $val; ?>" width="100" height="100" alt="" /></a></li> <?php endforeach; ?> </ul>
Ici, c'est la variable $listePhotos qui contient la liste des photos à traiter. La boucle foreach va traiter chaque item séquentiellement. Plus besoin de nommer les photos 1;jpg, 2.jpg, etc... Vous pouvez utiliser n'importe quel nom.
A+
mpmp93
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
23 nov. 2011 à 10:10
23 nov. 2011 à 10:10
Bonjour,
dans votre modèle de nommage des images en 1.jpg, 2.jpg, etc... vous obligez un nommage séquentiel. Si dans le futur vous êtes obligé d'enlever une image, avant:
1.jpg
2.jpg
3.jpg
4.jpg
après:
1.jpg
3.jpg
4.jpg
ou modifier l'ordre d'apparition des images:
1.jpg
4.jpg
2.jpg
3.jpg
vous êtes vite coincé par une boucle for utilisant l'index de boucle comme sélecteur d'image.
vous verrez que l'utilisation d'un tableau est beaucoup plus souple. D'une part:
vous utilisez des noms d'images plus complexes:
1.jpg => devient par exemple
photo.1.jpg
photo01.jpg
vuePontdeMillaulaNuit.jpg
bellePhoto.jpeg => notez que l'extension est jpeg
Vous pouvez mixer des illustrations de type différent: jpg, png, gif
extraitPhoto.png
On peut faire plus compliqué avec un tableau:
$listePhotos = array('moi.jpg', 'lui.jpg', 'eux.jpg', 'nous.jpg');
est notre tableau initial
$listePhotosAAfficher = $listePhotos;
Ensuite, on utilise une fonction aléatoire qui va extraire une image au hasard, par exemple la seconde image. On l'affiche puis on efface l'item 2. Notre tableau des photos à afficher contient maintenant:
$listePhotosAAfficher contient ('moi.jpg', 'eux.jpg', 'nous.jpg');
Il reste trois items. On sélectionne un autre item au hasard, fonction rand en php... On itère jusqu'à épuisement du tableau. Si tableau vide, on recharge la série initiale.
Intérêt: on peut à chaque visite personnaliser en affichant de manière aléatoire chaque photo d'une série en l'affichant une seule fois.
En effet, supposez que vous n'ayez pas 50 mais 1000 images à afficher... Je doute qu'il y ait un utilisateur qui va les regarder ces 1000 photos dans l'ordre imposé. Résultat: les 10 premières photos seront les plus consultées, les 5à suivantes déja beaucoup moins, et le 950 suivantes quasiment jamais!
Quand au problème du chargement de array, on peut utiliser une fonction qui va lire un répertoire (fonction dir en php), lire chaque nom de fichier et charger notre array. Si vous rajoutez une photo, elle sera automatiquement intégrée à array sans toucher au code php...
Voilà, je vous ai donné des pistes intéressantes pour votre projet.
mais surtout, oubliez le nommage séquentiel d'images qui est trop restrictif.
dans votre modèle de nommage des images en 1.jpg, 2.jpg, etc... vous obligez un nommage séquentiel. Si dans le futur vous êtes obligé d'enlever une image, avant:
1.jpg
2.jpg
3.jpg
4.jpg
après:
1.jpg
3.jpg
4.jpg
ou modifier l'ordre d'apparition des images:
1.jpg
4.jpg
2.jpg
3.jpg
vous êtes vite coincé par une boucle for utilisant l'index de boucle comme sélecteur d'image.
vous verrez que l'utilisation d'un tableau est beaucoup plus souple. D'une part:
vous utilisez des noms d'images plus complexes:
1.jpg => devient par exemple
photo.1.jpg
photo01.jpg
vuePontdeMillaulaNuit.jpg
bellePhoto.jpeg => notez que l'extension est jpeg
Vous pouvez mixer des illustrations de type différent: jpg, png, gif
extraitPhoto.png
On peut faire plus compliqué avec un tableau:
$listePhotos = array('moi.jpg', 'lui.jpg', 'eux.jpg', 'nous.jpg');
est notre tableau initial
$listePhotosAAfficher = $listePhotos;
Ensuite, on utilise une fonction aléatoire qui va extraire une image au hasard, par exemple la seconde image. On l'affiche puis on efface l'item 2. Notre tableau des photos à afficher contient maintenant:
$listePhotosAAfficher contient ('moi.jpg', 'eux.jpg', 'nous.jpg');
Il reste trois items. On sélectionne un autre item au hasard, fonction rand en php... On itère jusqu'à épuisement du tableau. Si tableau vide, on recharge la série initiale.
Intérêt: on peut à chaque visite personnaliser en affichant de manière aléatoire chaque photo d'une série en l'affichant une seule fois.
En effet, supposez que vous n'ayez pas 50 mais 1000 images à afficher... Je doute qu'il y ait un utilisateur qui va les regarder ces 1000 photos dans l'ordre imposé. Résultat: les 10 premières photos seront les plus consultées, les 5à suivantes déja beaucoup moins, et le 950 suivantes quasiment jamais!
Quand au problème du chargement de array, on peut utiliser une fonction qui va lire un répertoire (fonction dir en php), lire chaque nom de fichier et charger notre array. Si vous rajoutez une photo, elle sera automatiquement intégrée à array sans toucher au code php...
Voilà, je vous ai donné des pistes intéressantes pour votre projet.
mais surtout, oubliez le nommage séquentiel d'images qui est trop restrictif.
LightBen
Messages postés
49
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
15 janvier 2015
5
20 nov. 2011 à 17:21
20 nov. 2011 à 17:21
En fait, cette dernière solution est aussi moyenne en chargement... mieux que ma boucle, mais toujours lente... J'upload le tout comme ça vous avez le visuel, d'ici 17:23
LightBen
Messages postés
49
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
15 janvier 2015
5
22 nov. 2011 à 10:53
22 nov. 2011 à 10:53
Up =)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
LightBen
Messages postés
49
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
15 janvier 2015
5
22 nov. 2011 à 17:06
22 nov. 2011 à 17:06
Mais pour ça je dois mettre le nom de toutes les photos dans le tableau de départ non ? Ou il y a moyen à l'intérieur même de ce tableau placer une boucle (vu que mes photos peuvent se nommer 1, 2, ... 50.jpg où je pourrais incrémenter une variable ?)
Merci de ta réponse c'est en tout cas déjà vachement mieux à vue de nez, je vais tester dans la semaine
Merci de ta réponse c'est en tout cas déjà vachement mieux à vue de nez, je vais tester dans la semaine
LightBen
Messages postés
49
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
15 janvier 2015
5
23 nov. 2011 à 12:34
23 nov. 2011 à 12:34
Merci pour cette réponse qui m'aide encore un peu plus dans l'amélioration de ma page photos.
Seulement, je ne suis pas assez avancé en PHP pour faire tout seul une "fonction aléatoire qui va extraire une image au hasard" ou... ah, je viens de relire le dernier paragraphe super intéressant :
"Quand au problème du chargement de array, on peut utiliser une fonction qui va lire un répertoire (fonction dir en php), lire chaque nom de fichier et charger notre array. Si vous rajoutez une photo, elle sera automatiquement intégrée à array sans toucher au code php"
Comment on fait ?? Je sais qu'il faut se débrouiller, mais là, je suis trop noob en PHP pour créer des fonctions comme ça, pour l'instant j'en suis au stade "petit malin qui peut lire et modifier des codes pré existants".
Merci encore =)
Seulement, je ne suis pas assez avancé en PHP pour faire tout seul une "fonction aléatoire qui va extraire une image au hasard" ou... ah, je viens de relire le dernier paragraphe super intéressant :
"Quand au problème du chargement de array, on peut utiliser une fonction qui va lire un répertoire (fonction dir en php), lire chaque nom de fichier et charger notre array. Si vous rajoutez une photo, elle sera automatiquement intégrée à array sans toucher au code php"
Comment on fait ?? Je sais qu'il faut se débrouiller, mais là, je suis trop noob en PHP pour créer des fonctions comme ça, pour l'instant j'en suis au stade "petit malin qui peut lire et modifier des codes pré existants".
Merci encore =)