|
Dernière réponse | |
---|---|
Sujet : Grosse merde en PHP requiert âme sensible | |
ethernal | on va simplifier, ajoute ça //TRI DU TABLEAU sort($hnamep); //Reparcourt le tableau ordonné pour la taille des images for ($i=0; $i<=$nb_photos; $i++){ $size_ph = getimagesize("$directory/" .$hnamep[$i]); // taille de l image $hst_w_ph[$i] = $size_ph[0]; $hst_h_ph[$i] = $size_ph[1]; } avant le "// fin rempli tableau des noms" |
Aperçu |
---|
Vue Rapide de la discussion |
---|
ethernal | on va simplifier, ajoute ça //TRI DU TABLEAU sort($hnamep); //Reparcourt le tableau ordonné pour la taille des images for ($i=0; $i<=$nb_photos; $i++){ $size_ph = getimagesize("$directory/" .$hnamep[$i]); // taille de l image $hst_w_ph[$i] = $size_ph[0]; $hst_h_ph[$i] = $size_ph[1]; } avant le "// fin rempli tableau des noms" |
Gilgamesh | coller ou ? |
ethernal | il les lit dans le répertoire avec readdir() qui les prend dans n'importe quel ordre.
le plus simple est de trier le tableau des noms d'images avec sort() (http://www.php.net/manual/en/function.sort.php) donc avant ta dernière ligne: constr_tab($int_nb_photos, $int_nb_pages, $int_no_page, $hnamep, $hst_w_ph, $hst_h_ph, $nb_lim, $first, $all_nb_photos, $directory); ajoute sort($hnamep); reset($hnamep); le problème est que les tableaux de la taille de tes images $hst_w_ph[$nb_photos] = $size_ph[0]; $hst_h_ph[$nb_photos] = $size_ph[1]; ne correspondra plus à ton image puisque la clé aura été modifié... solution, ne les passe plus en paramètre à ta fonction, mais trouve les directement dans ta fonction tu coupe-colle les lignes : $filetoopen = "$directory/" . $file; $size_ph = getimagesize($filetoopen); // taille de l image $hst_w_ph[$nb_photos] = $size_ph[0]; $hst_h_ph[$nb_photos] = $size_ph[1]; (remplacer "$file" par le déplacement dans le tableau) pour les mettre dans la fonction : // Construction du tableau html function constr_tab voila tu as la marche à suivre, à toi de jouer pour le reste ;) [edtdd]--Message édité par ethernal--[/edtdd] |
Gilgamesh | Comment afficher les photos de ce script par ordre alphabétique.
Merci. --------------------------------------------------------------- <?php //////////////////////////////////////////////////////////////////////////////// // // Browser d'images par J PINCHAUD // Novembre 2000 // j_pinchaud@yahoo.fr // http://jpage.free.fr/ // // Ce browser permet d'afficher toutes les images du dossier photos dans une page web. // Attention, ne mettre que des images dans le dossier photos. // L'affichage se fait dans un tableau et toutes les images sont affichées en miniatures avec un lien vers la taille réelle. // Si vous avez beaucoup de photos, l'affichage peut se faire sur plusieurs pages. // Une fois en ligne vous n'avez plus qu'à placer vos photos dans le dossier photos. // Vous pouvez paramétrer facilement de nombreux paramètres pour changer l'aspect de votre page // Les varaibles paramétrables sont repérées par des ## ## // // Pour ce qui est de l'utilisation de ce script je suis un adepte du CareWare // To know more about it go on <A HREF="http://www.arachnoid.com/careware">CareWare</A>. // // Si vous ne voulez pas laisser mon email, laissez au moins ce lien // Merci Amusez vous bien // J. // ////////////////////////////////////////////////// ////////////////////////////// require ("_admin/conf.php3" ); ////////////////////////////////////////////////// ////////////////////////////// // ouverture du dossier contenant les fichiers --> nbphotos function nb_ph($fdirectory){ $handle=opendir($fdirectory); $nb_photos = 0; while ($file = readdir($handle)) { if ($file != "." && $file != ".." && $file != "_commentaire.txt" ) { // $file contient le nom d'un fichier $nb_photos = $nb_photos + 1; } } closedir($handle); return ($nb_photos); } // fin ouverture du dossier contenant les fichiers --> nbphotos ////////////////////////////////////////////////// ////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////// // NAME function no_ext($t_file){ $pt = strrpos($t_file, "." ); $s_file = substr($t_file, 0, $pt); return $s_file; } // FIN NAME ////////////////////////////////////////////////// ////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////// // Construction du tableau html function constr_tab($fnb_photos, $fint_nb_pages, $fint_no_page, $fhnamep, $fhst_w_ph, $fhst_h_ph, $fnb_lim, $ffirst, $fall_nb_photos, $fdirectory){ require ("_admin/conf.php3" ); if ($fint_no_page < $fint_nb_pages){ $fnb_photos = $fnb_lim ; } else{ $fnb_photos = $fnb_photos - ($fnb_lim * ($fint_no_page - 1)); } $cpt_init = ($fint_no_page - 1) * $fnb_lim + 1; if ($fnb_photos == 0){ echo " <!doctype html public \"-//w3c//dtd html 3.2//en\"><html><head> <title>Filelist</title> </head> <body bgcolor=\"$bodybgcolor\" text=\"$txtcolor\" link=\"$linkcolor\" vlink=\"$vlinkcolor\" alink=\"$alinkcolor\"> <p>Dossier vide</p><a href=\"index.php3\">Retour</a> "; echo"</body></html>"; die; } else { echo " <!doctype html public \"-//w3c//dtd html 3.2//en\"><html><head> <title>Mes photos $st_texte</title> <script language=\"JavaScript\"> <!-- function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //--> </script> </head> <body bgcolor=\"$bodybgcolor\" text=\"$txtcolor\" link=\"$linkcolor\" vlink=\"$vlinkcolor\" alink=\"$alinkcolor\"> "; echo " <table border=\"0\" width=\"$table_width\" cellspacing=\"10\" cellpadding=\"10\" align=\"center\" bgcolor=\"$bodybgcolor\"> <tr><td colspan=\"5\" align=\"center\" bgcolor=\"$bgcolor_titre\"><font size=\"$titre_size\" color=\"$titre_color\" face=\"$titre_face\"> <b><u>$st_texte</u></b></font></td> "; $reste = $fnb_photos % 5; $juste = $fnb_photos - $reste; $quotient = $juste / 5; echo "<tr><td colspan=\"2\"><font size=\"1\" face=\"$titre_face\"> Page : $fint_no_page/$fint_nb_pages </font></td>"; $photo_start = 1 + ($fint_no_page - 1) * $fnb_lim; $photo_end = $photo_start + $fnb_photos - 1; // echo "$nb_lim"; echo " <td colspan=\"3\" align=\"right\"><font size=\"1\" face=\"$titre_face\"> Photos : $photo_start à $photo_end </font></td> </tr>"; if ($quotient == 0){ // moins de cinq echo"<tr><td bgcolor=\"$bodybgcolor\" width=\"20%\" height=\"0\"> </td><td bgcolor=\"$bodybgcolor\" width=\"20%\" height=\"0\"> </td><td bgcolor=\"$bodybgcolor\" width=\"20%\" height=\"0\"> </td><td bgcolor=\"$bodybgcolor\" width=\"20%\" height=\"0\"> </td><td bgcolor=\"$bodybgcolor\" width=\"20%\" height=\"0\"> </td></tr>"; echo "<tr>"; for ($i = $cpt_init; $i <= ($reste + $cpt_init - 1); $i++){ $wnd_w = $fhst_w_ph[$i] + 60; $wnd_h = $fhst_h_ph[$i] + 60; $ts_name = no_ext($fhnamep[$i]); echo"<td bgcolor=\"$tabbgcolor\" width=\"20%\" align=\"center\"><a href=\"#\" onClick=\"MM_openBrWindow('window.php3?img _name=$fdirectory/$fhnamep[$i]&img_w=$fhst_w_ph[$i ]&img_h=$fhst_h_ph[$i]','photo', 'scrollbars=yes,resizable=yes,width=$wnd_w,h eight=$wnd_h')\"><img src=\"$fdirectory/" . $fhnamep[$i] . "\" align=\"center\" border=\"0\" width=\"$min_width\" height=\"$min_height\" alt=\"$fhnamep[$i]\"></a><br><font size=\"1\" face=\"Verdana, Arial, Helvetica\">$ts_name</font></td>"; } echo "</tr>"; } else { // plus de cinq ou egale for ($i = 1; $i <= $quotient; $i++){ echo "<tr>"; for ($j = 1; $j <= 5; $j++){ $k =($cpt_init - 1) + ($i - 1) * 5 + $j; $wnd_w = $fhst_w_ph[$k] + 60; $wnd_h = $fhst_h_ph[$k] + 60; $ts_name = no_ext($fhnamep[$k]); echo"<td bgcolor=\"$tabbgcolor\" width=\"20%\" align=\"center\"><a href=\"#\" onClick=\"MM_openBrWindow('window.php3?img _name=$fdirectory/$fhnamep[$k]&img_w=$fhst_w_ph[$k ]&img_h=$fhst_h_ph[$k]','photo', 'scrollbars=yes,resizable=yes,width=$wnd_w,h eight=$wnd_h')\"><img src=\"$fdirectory/" . $fhnamep[$k] . "\" align=\"center\" border=\"0\" width=\"$min_width\" height=\"$min_height\" alt=\"$fhnamep[$k]\"></a><br><font size=\"1\" face=\"Verdana, Arial, Helvetica\">$ts_name</font></td>"; } echo "</tr>"; } echo "<tr>"; for ($l = 1; $l <= $reste; $l++){ $m = $k + $l; $wnd_w = $fhst_w_ph[$m] + 60; $wnd_h = $fhst_h_ph[$m] + 60; $ts_name = no_ext($fhnamep[$m]); echo"<td bgcolor=\"$tabbgcolor\" width=\"20%\" bgcolor=\"$tabbgcolor\" align=\"center\"><a href=\"#\" onClick=\"MM_openBrWindow('window.php3?img _name=$fdirectory/$fhnamep[$m]&img_w=$fhst_w_ph[$m ]&img_h=$fhst_h_ph[$m]','photo', 'scrollbars=yes,resizable=yes,width=$wnd_w,h eight=$wnd_h')\"><img src=\"$fdirectory/" . $fhnamep[$m] . "\" align=\"center\" border=\"0\" width=\"$min_width\" height=\"$min_height\" alt=\"$fhnamep[$m]\"></a><br><font size=\"1\" face=\"Verdana, Arial, Helvetica\">$fhnamep[$m]</font></td>"; } echo "</tr>"; } echo "<tr><td width=\"20 %\" colspan=\"2\" align=\"left\"><font size=\"1\" face=\"$titre_face\"><a href=\"index.php3\">Menu</a> "; ///////////////////////////// // liens page $other_cpt_l = 0; $other_cpt_r = 0; for ($cpt = 1 ; $cpt <= $fint_nb_pages ; $cpt++){ if ($cpt <= $fint_no_page + 3 && $cpt >= $fint_no_page - 3){ if ($fint_no_page != $cpt) echo " | <a href=\"browser.php3?first=$ffirst&int_nb_photos= $fnb_photos&int_nb_pages=$fint_nb_pages&int_no_pag e=$cpt&directory=$fdirectory\">$cpt</a>"; else echo " | <b>$cpt</b>"; } else{ if ($cpt < $fint_no_page && $other_cpt_l < 3){ $other_cpt_l++; echo " ."; } else if ($cpt > $fint_no_page && $other_cpt_r < 3){ $other_cpt_r++; echo " ."; }; }; }; // lien page ///////////////////////////// echo "</font></td><td colspan=\"3\" width=\"100%\" align=\"center\"><font size=\"2\">"; ///////////////////////////// // prev next if ($fint_nb_pages == 1){ echo"</font></td></tr></table></body></html>"; die; } if (($fint_no_page - $fint_nb_pages) <= 0 && $fint_no_page != 1){ // prev $fnb_photos = $fall_nb_photos - ($fnb_lim * ($fint_no_page - 1)); $fint_no_page = $fint_no_page - 1; echo "<a href=\"browser.php3?first=$ffirst&int_nb_photos= $fnb_photos&int_nb_pages=$fint_nb_pages&int_no_pag e=$fint_no_page&directory=$fdirectory\"><img src=\"img_src/prev.gif\" border=\"0\" alt=\"Page précédente\"></a> "; $fint_no_page = $fint_no_page + 1; } if (($fint_nb_pages - $fint_no_page) > 0){ // next $fint_no_page = $fint_no_page + 1; $fnb_photos = $fall_nb_photos - ($fnb_lim * ($fint_no_page - 1)); echo " <a href=\"browser.php3?first=$ffirst&int_nb_photos= $fnb_photos&int_nb_pages=$fint_nb_pages&int_no_pag e=$fint_no_page&directory=$fdirectory\"><img src=\"img_src/next.gif\" border=\"0\" alt=\"Prochaine page\"></a>"; } // prev next ///////////////////////////// echo "</font></td></tr><tr><td width=\"100 %\" colspan=\"5\" align=\"center\" height=\"4\" bgcolor=\"$bgcolor_titre\"></td></tr></table></body></html>"; die; } } // fin Construction du tableau html ////////////////////////////////////////////////// ////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////// // affichage /////////////////////////////////////////////////////// // rempli tableau des noms $handle=opendir($directory); $nb_photos = 0; while ($file = readdir($handle)) { if ($file != "." && $file != ".." && $file != "_commentaire.txt" ) { // $file contient le nom d'un fichier $nb_photos = $nb_photos + 1; $hnamep[$nb_photos] = $file; $filetoopen = "$directory/" . $file; $size_ph = getimagesize($filetoopen); // taille de l image $hst_w_ph[$nb_photos] = $size_ph[0]; $hst_h_ph[$nb_photos] = $size_ph[1]; } } closedir($handle); // fin rempli tableau des noms ////////////////////////////////////////////////////// $int_nb_photos = nb_ph($directory); // nombre de photos $all_nb_photos = $int_nb_photos; $tmp_reste = $int_nb_photos % $nb_lim; if ($tmp_reste == 0){ $int_nb_pages = $int_nb_photos / $nb_lim; } else{ $tmp_juste = $int_nb_photos - $tmp_reste; $int_nb_pages = $tmp_juste / $nb_lim + 1; // nombre de pages } if ($first != "NO" ){ $first = "NO"; $int_no_page = 1; } constr_tab($int_nb_photos, $int_nb_pages, $int_no_page, $hnamep, $hst_w_ph, $hst_h_ph, $nb_lim, $first, $all_nb_photos, $directory); // fin affichage //////////////////////////////////////////////////////////////////////////////// ?> |