Xml par ordre alphabétique

f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009 - 26 juin 2009 à 11:44
f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009 - 6 juil. 2009 à 17:49
Salut,


J'ai un code php qui génère un fichier xml, mais les résultats s'affichent dans un ordre aléatoire, hors j'aimerais trier les données dans un ordre alphabétique.


Est-ce que je dois créer un xsl ou est ce qu'il y a moyen de trier dans le code php?


Merci


le code php(il s'agit d'une galerie flash) :
function listerIMG($s_nomrep_courant)
{
 global $s_xml;
 global $listeRepertoires;
 
 /*--- Liste des images du Répertoire ---*/
 if( strlen($s_nomrep_courant) > 1 )
 {
  $repActu = opendir($s_nomrep_courant);
  
  // Scan du répertoire
  while($scanimg=readdir($repActu))
  {
  
   // Fichier
   if(is_file($s_nomrep_courant."/".$scanimg))
   {


    // Verification de l'extension d'image
    $ext = strtolower(substr($scanimg, strrpos($scanimg, '.') + 1));
    // à modifier suivant l'extension des images du répertoire
    //if (($ext=="PNG") || ($ext=="png"))
    if (($ext=="jpg") || ($ext=="jpeg") || ($ext=="JPEG") || ($ext=="JPG") )
    {
     $nomrep = substr($s_nomrep_courant, 2);
     $s_param = explode(".", $scanimg);
     $nomimage = $s_param[0];
     
     /*--- création des miniatures ---*/    
     $s_chemin_mini = substr($s_nomrep_courant, 2);
     $s_mini_img = $scanimg;
     
     // on ne redimensionne pas la miniature
     if( substr($s_mini_img, 0, 5) != "mini_" )
     {
     
      if( file_exists($s_chemin_mini."/mini_".$s_mini_img) )
      {
       //echo " le fichier existe : ".$s_chemin_mini."/mini_".$s_mini_img."
";
      }
      else
      {
       //echo "creation de la miniatures
";
       resize( $s_chemin_mini."/", $s_mini_img);
      }
      // mise à jour du fichier xml
      $s_xml .="<detail nomimage="".$nomimage."" urlimage="".$s_nomrep_courant."/".$scanimg."" nomrepertoire="".$nomrep."" vignette="".$s_nomrep_courant."/mini_".$scanimg."" >Des commentaires optionnels)

          </detail>";
         
     }    


     // remplit le tableau des répertoires
     array_push ($listeRepertoires, $nomrep);
    }
   }
  }
  closedir($repActu);
  return true;
 }
}




// entrée : le nom du répertoire (le chemin), le nom du fichier à redimensionner
// sortie : true or false
// fonction : redimensionne des images
function resize($s_chemin, $file)
{
    $size = getimagesize($s_chemin.$file);
   
    # getimagesize() retourne un tableau de 4 éléments.
    # L'index 0 contient la largeur. L'index 1 contient la longueur. L'index 2    # contient le type de l'image : 1 GIF, 2 JPG,    # 3 PNG, 5 PSD, 6 = BMP.
    # L'index 3 contient la chaîne à placer dans les balises
    # HTML : "height=xxx width=xxx"
    # (source www.php.net)   
   
    $dest_width = ($size[0]/4); //détermine la taille de la miniature, ici l'on désire quelles soient d'un sixième de leur taille normale
    $dest_eight = ($size[1]/4);
  //$dest_width = 200;
    //$dest_eight = 200;
 
    $src_img = imagecreatefromjpeg($s_chemin.$file);
    $dst_img = imagecreatetruecolor($dest_width,$dest_eight);


    imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_eight, $size[0], $size[1]); // la fonction qui redimensionne les photos
    imagejpeg($dst_img, $s_chemin."mini_".$file, 60);
    imagedestroy($src_img);
    imagedestroy($dst_img);
 
 return true;  
}
 
$s_xml = "<?xml version="1.0" encoding="utf-8" ?>
";




/*--- Récupère toutes les images d'un répertoire ---*/
$s_xml .= "


";


 // Répertoire courant
$repcou = @$_GET["dir"];
if(!$repcou) $repcou = ".";




// Liste des dossiers
$dir = opendir($repcou);
// Scan du répertoire
while($scan=readdir($dir))
{
 // Dossier sauf répertoire courant
 if(is_dir($repcou."/".$scan)&&($scan!="."))
 {
  // Répertoire parent
  if($scan=="..")
  {
   // Lien vers le répertoire parent
   if($repcou!=".")
   {
    $tmp = strrpos($repcou,"/");
    $s_nomrep_courant = substr($repcou,0,$tmp);
   }
  }
  else
  {
   $s_nomrep_courant = $repcou."/".$scan;
   $b_retour = listerIMG($s_nomrep_courant);
  }
 }
}
closedir($dir);


$s_xml .="


";


 

15 réponses

cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
28 juin 2009 à 08:32
Bonjour,

Mets d'abord tes données dans un array puis fais un sort() dessus.

Cordialement
0
f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009
29 juin 2009 à 10:25
Ok, j'essaie, mais je n'y arrive pas ...

Je suppose que je dois mettre ca dans la boucle.

Tu saurais me guider svp?

merci 
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
29 juin 2009 à 17:02
Montres nous le code qui ne fonctionne pas stp.

Cordialement
0
f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009
30 juin 2009 à 10:04
Ceci doit être la fonction qui remplit le fichier xml, donc je suppose que c'est cette fonction que je dois attaquer.
J'ai essayé de m'inspirer du tableau $listeRepertoires, et mon tableau s'appelle $tri.
Si tu penses que je n'attaque pas la bonne partie, tout le code est dans le premier post.


Je te remercie énormément

/*--- génération du fichier xml ---*/


$s_xml = "";
$listeRepertoires = array();
$tri = array();
$count=0;


// entrée : le nom du répertoire à scanner
// fonction : liste les images d'un répertoire et met à jour le fichier xmlfunction listerIMG($s_nomrep_courant)
{
 global $s_xml;
 global $listeRepertoires;
 global $tri;
 
 /*--- Liste des images du Répertoire ---*/
 if( strlen($s_nomrep_courant) > 1 )
 {
  $repActu = opendir($s_nomrep_courant);
  
  // Scan du répertoire
  while($scanimg=readdir($repActu))
  {
  
   // Fichier
   if(is_file($s_nomrep_courant."/".$scanimg))
   {


    // Verification de l'extension d'image
    $ext = strtolower(substr($scanimg, strrpos($scanimg, '.') + 1));
    // à modifier suivant l'extension des images du répertoire
    //if (($ext=="PNG") || ($ext=="png"))
    if (($ext=="jpg") || ($ext=="jpeg") || ($ext=="JPEG") || ($ext=="JPG") )
    {
     $nomrep = substr($s_nomrep_courant, 2);
     $s_param = explode(".", $scanimg);
     $nomimage = $s_param[0];
     
     /*--- création des miniatures ---*/    
     $s_chemin_mini = substr($s_nomrep_courant, 2);
     $s_mini_img = $scanimg;
     
     // on ne redimensionne pas la miniature
     if( substr($s_mini_img, 0, 5) != "mini_" )
     {
     
      if( file_exists($s_chemin_mini."/mini_".$s_mini_img) )
      {
       //echo " le fichier existe : ".$s_chemin_mini."/mini_".$s_mini_img."
";
      }
      else
      {
       //echo "creation de la miniatures
";
       resize( $s_chemin_mini."/", $s_mini_img);
      }
      // mise à jour du fichier xml
      $s_xml .="<detail nomimage="".$nomimage."" urlimage="".$s_nomrep_courant."/".$scanimg."" nomrepertoire="".$nomrep."" vignette="".$s_nomrep_courant."/mini_".$scanimg."" >Des commentaires optionnels)

          </detail>";
         
     }    


     // remplit le tableau des répertoires
     array_push ($listeRepertoires, $nomrep);
    }
   }
  }
  closedir($repActu);
  return true;
 }
 array_push ($tri, $s_xml);
 sort($tri);
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
30 juin 2009 à 18:01
Bonjour f0nzy,

Je préconiserai la méthode suivante (qui fera un tri sur le nom de l'image) :

// Ici tu mets à jour ta variable $s_xml
$s_xml .="<detail nomimage="".$nomimage."" urlimage="".$s_nomrep_courant."/".$scanimg."" nomrepertoire="".$nomrep."" vignette="".$s_nomrep_courant."/mini_".$scanimg."" >Des commentaires optionnels

</detail>";
// on rajoute ici le nom de l'image à l'array tri pour ensuite le trier
$tri[] = $nomimage;

// Cette partie viendra en dehors de la boucle pour effectuer le tri
sort($tri);
// Initialization d'un array qui contiendra la liste triée.
trie=array();
foreach ($tri as $key => $val) {
    // Vérification de la présence de l'image ...
    if (preg_match($val, $s_xml)) {
        // Extraction de cet 'item' de la liste ...
        $regex='/(<detail.?nomimage="'.$val.'".?urlimage="[^"]+?".?nomrepertoire="[^"]+?".?vignette="[^"]+?".?>[^<]*?</detail>)/i';
        if (preg_match($regex, $s_xml, $res)) {
            // Sauvegarde de l'item dans l'array final ...
            $trie[]=$res[0];
        }
    }
}
// Enfin, ta variable $s_xml peut être réécrite ...
unset($s_xml);
foreach ($trie as $key => $val) {
    $s_xml .= $val;
}
// Ici donc, $s_xml sera normalement une variable triée !

En espérant que cela fonctionne comme prévu.

Cordialement
0
f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009
1 juil. 2009 à 11:31
L'ordre se fait toujours aléatoirement, je n'ai peut être pas copier au bon endroit, je l'ai mis en fin de fonction

Merci beaucoup en tout cas

function listerIMG($s_nomrep_courant)
{
global $s_xml;
global $listeRepertoires;

/*--- Liste des images du Répertoire ---*/
if( strlen($s_nomrep_courant) > 1 )
{
$repActu = opendir($s_nomrep_courant);

// Scan du répertoire
while($scanimg=readdir($repActu))
{

// Fichier
if(is_file($s_nomrep_courant."/".$scanimg))
{

// Verification de l'extension d'image
$ext = strtolower(substr($scanimg, strrpos($scanimg, '.') + 1));
// à modifier suivant l'extension des images du répertoire
//if (($ext=="PNG") || ($ext=="png"))
if (($ext=="jpg") || ($ext=="jpeg") || ($ext=="JPEG") || ($ext=="JPG") )
{
$nomrep = substr($s_nomrep_courant, 2);
$s_param = explode(".", $scanimg);
$nomimage = $s_param[0];

/*--- création des miniatures ---*/
$s_chemin_mini = substr($s_nomrep_courant, 2);
$s_mini_img = $scanimg;

// on ne redimensionne pas la miniature
if( substr($s_mini_img, 0, 5) != "mini_" )
{

if( file_exists($s_chemin_mini."/mini_".$s_mini_img) )
{
//echo " le fichier existe : ".$s_chemin_mini."/mini_".$s_mini_img."
";
}
else
{
//echo "creation de la miniatures
";
resize( $s_chemin_mini."/", $s_mini_img);
}
// mise à jour du fichier xml
$s_xml .="<detail nomimage="\"".$nomimage."\"" urlimage="\"".$s_nomrep_courant."/".$scanimg."\"" nomrepertoire="\"".$nomrep."\"" vignette="\"".$s_nomrep_courant."/mini_".$scanimg."\"">Des commentaires optionnels)

</detail>";
$tri[]=$nomimage;
}
// remplit le tableau des répertoires
array_push ($listeRepertoires, $nomrep);
}
}
}
closedir($repActu);
return true;
}
sort($tri);
$trie=array();

foreach ($tri as $key => $val) {
// Vérification de la présence de l'image ...
if (preg_match($val, $s_xml)) {
// Extraction de cet 'item' de la liste ...
$regex='/(<detail.?nomimage .?urlimage="[^" ]+?".?nomrepertoire="[^" ]+?".?vignette="[^" ]+?".?="">[^<]*?)/i';
if (preg_match($regex, $s_xml, $res)) {
// Sauvegarde de l'item dans l'array final ...
$trie[]=$res[0];
}
}
}
unset($s_xml);
foreach ($trie as $key => $val) {
$s_xml .= $val;
}
}

</detail.?nomimage>
0
f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009
1 juil. 2009 à 11:35
L'ordre se fait toujours aléatoirement, je n'ai peut être pas copier au bon endroit, je l'ai mis en fin de fonction

Merci beaucoup en tout cas

le code:
function listerIMG($s_nomrep_courant)
{
global $s_xml;
global $listeRepertoires;

/*--- Liste des images du Répertoire ---*/
if( strlen($s_nomrep_courant) > 1 )
{
$repActu = opendir($s_nomrep_courant);

// Scan du répertoire
while($scanimg=readdir($repActu))
{

// Fichier
if(is_file($s_nomrep_courant."/".$scanimg))
{

// Verification de l'extension d'image
$ext = strtolower(substr($scanimg, strrpos($scanimg, '.') + 1));
// à modifier suivant l'extension des images du répertoire
//if (($ext=="PNG") || ($ext=="png"))
if (($ext=="jpg") || ($ext=="jpeg") || ($ext=="JPEG") || ($ext=="JPG") )
{
$nomrep = substr($s_nomrep_courant, 2);
$s_param = explode(".", $scanimg);
$nomimage = $s_param[0];

/*--- création des miniatures ---*/
$s_chemin_mini = substr($s_nomrep_courant, 2);
$s_mini_img = $scanimg;

// on ne redimensionne pas la miniature
if( substr($s_mini_img, 0, 5) != "mini_" )
{

if( file_exists($s_chemin_mini."/mini_".$s_mini_img) )
{
//echo " le fichier existe : ".$s_chemin_mini."/mini_".$s_mini_img."
";
}
else
{
//echo "creation de la miniatures
";
resize( $s_chemin_mini."/", $s_mini_img);
}
// mise à jour du fichier xml
$s_xml .="<detail nomimage="".$nomimage."" urlimage="".$s_nomrep_courant."/".$scanimg."" nomrepertoire="".$nomrep."" vignette="".$s_nomrep_courant."/mini_".$scanimg."" >Des commentaires optionnels)


</detail>";
$tri[]=$nomimage;
}
// remplit le tableau des répertoires
array_push ($listeRepertoires, $nomrep);
}
}
}
closedir($repActu);
return true;
}
sort($tri);
$trie=array();

foreach ($tri as $key => $val) {
// Vérification de la présence de l'image ...
if (preg_match($val, $s_xml)) {
// Extraction de cet 'item' de la liste ...
$regex='/(<detail.?nomimage="'.$val.'".?urlimage="[^"]+?".?nomrepertoire="[^"]+?".?vignette="[^"]+?".?>[^<]*?</detail>)/i';
if (preg_match($regex, $s_xml, $res)) {
// Sauvegarde de l'item dans l'array final ...
$trie[]=$res[0];
}
}
}
unset($s_xml);
foreach ($trie as $key => $val) {
$s_xml .= $val;
}
}
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
1 juil. 2009 à 14:42
Tu dois mettre la 2ème partie juste avant ta commande return true; je pense. Autrement, tu es sortie du script avant même de faire le tri.

Cordialement
0
f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009
2 juil. 2009 à 11:35
Ah oui, tu as raison, je viens de remonter le code et j 'ai du changement, mais il y a une petite erreur dans le code :
Warning: preg_match() [function.preg-match]: Delimiter must not be
alphanumeric or backslash in ...
Après des recherches google, il dit d'utiliser la fonction strpos(), ca marche pour la premiere ligne ("if (preg_match($val, $s_xml))"), mais pour la seconde qui contient trois valeurs, c'est un autre problème

Encore merci
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
2 juil. 2009 à 18:42
Bonsoir f0nzy,

Je n'avais pas testé ce petit script. Je m'en excuse. Je croyais que tu pourrais le déboguer. Et en effet, il y a des bugs. Voici un code corrigé et qui fonctionne de la 2ème partie :

// Cette partie viendra en dehors de la boucle pour effectuer le tri
sort($tri);
// Initialization d'un array qui contiendra la liste triée.
$trie=array();
foreach ($tri as $key => $val) {
    // Vérification de la présence de l'image ...
    if (preg_match('/(nomimage="'.$val.'")/', $s_xml)) {
        // Extraction de cet 'item' de la liste ...
        $regex='/(<detail\snomimage="'.$val.'"\surlimage="[^"]+?"\snomrepertoire="[^"]+?"\svignette="[^"]+?"\s>[^<]*?<\/p><\/detail>)/';
        if (preg_match($regex, $s_xml, $res)) {
            // Sauvegarde de l'item dans l'array final ...
            $trie[] = $res[0];
        }
    }
}
// Enfin, ta variable $s_xml peut être réécrite ...
unset($s_xml);
foreach ($trie as $key => $val) {
    $s_xml .= $val;
}
// Ici donc, $s_xml sera normalement une variable triée !
echo $s_xml;

Les parties en rouge sont celles qui ont été corrigées/rajoutées pour que ça fonctionne.

Cordialement
0
f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009
3 juil. 2009 à 11:36
J'ai réussi à passer ce problème en rajoutant un # au début et à la fin de la chaine regex.
Mais j'ai un autre probleme, c'est au niveau du xml.

Mon message d'erreur :
Warning: sort() expects parameter 1 to be array, null given in /homez.151/photograg/www/galerie...

Je me demande si ce n'est pas à cause du 'unset', car une partie du xml est définie avant de boucler et le unset détruit cette partie non?

Merci de ton aide
0
f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009
3 juil. 2009 à 11:47
Je n'avais pas vu ton message sur la deuxième page, j'ai recopié ton code et il est bon merci
Mais j'ai toujours le problème xml, je copie/colle la partie de mon post précédent

Mon message d'erreur :
Warning: sort() expects parameter 1 to be array, null given in /homez.151/photograg/www/galerie...

Je me demande si ce n'est pas à cause du 'unset', car une partie du xml est définie avant de boucler et le unset détruit cette partie non?

Merci de ton aide
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
3 juil. 2009 à 16:05
Le sort() est avant le unset() donc je ne pense pas que ça soit cela. Normalement, selon le code que je t'ai donné, $tri doit être déclaré comme un array() avant toute chose. Puis tu le remplis via la commande $tri[] = $unevaleur, où $unevaleur, dans mon cas, était le nom de l'image. A toi de voir si c'est bien comme ça que tu l'utilises. Autrement, je te laisse le soin de trouver ce qui ne fonctionne pas. Le message dit ceci : " la commande sort() veut un tableau (array) en paramètre et pas autre chose ". Ce qui est logique.

Cordialement
0
f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009
3 juil. 2009 à 17:51
Salut,

tu as encore raison, j'ai oublié de déclarer mon tableau, mais j'ai tout de même erreur, je te met mon code, si tu sais jeter un oeil sinon c'est pas grave, tu m'as déjà bien aidé

Bon week end



<?php
echo "<?xml version="1.0" encoding="iso-8859-1"?".">";while ($table = mysql_fetch_array($info))
{
$groupe = $table['groupe'];
$motd = $table['pass'];
}

if($password = $motd)
{

// si clique sur "Enregistrer l'image sous..."
if(isset($_POST['image']))
{
$s_fichier_img = $_POST['image'];
$s_nom_image = $_POST['nomimage'];

header("Content-disposition:attachment; filename=$s_nom_image");
header("Content-Type:application/force-download");

readfile($s_fichier_img);
exit();
}

clearstatcache();


/*--- génération du fichier xml ---*/

$s_xml = "";
$tri = array();
$listeRepertoires = array();
$count=0;

// entrée : le nom du répertoire à scanner
// fonction : liste les images d'un répertoire et met à jour le fichier xml
function listerIMG($s_nomrep_courant)
{
global $s_xml;
global $listeRepertoires;

/*--- Liste des images du Répertoire ---*/
if( strlen($s_nomrep_courant) > 1 )
{
$repActu = opendir($s_nomrep_courant);

// Scan du répertoire
while($scanimg=readdir($repActu))
{

// Fichier
if(is_file($s_nomrep_courant."/".$scanimg))
{

// Verification de l'extension d'image
$ext = strtolower(substr($scanimg, strrpos($scanimg, '.') + 1));
// à modifier suivant l'extension des images du répertoire
//if (($ext=="PNG") || ($ext=="png"))
if (($ext=="jpg") || ($ext=="jpeg") || ($ext=="JPEG") || ($ext=="JPG") )
{
$nomrep = substr($s_nomrep_courant, 2);
$s_param = explode(".", $scanimg);
$nomimage = $s_param[0];

/*--- création des miniatures ---*/
$s_chemin_mini = substr($s_nomrep_courant, 2);
$s_mini_img = $scanimg;

// on ne redimensionne pas la miniature
if( substr($s_mini_img, 0, 5) != "mini_" )
{

if( file_exists($s_chemin_mini."/mini_".$s_mini_img) )
{
//echo " le fichier existe : ".$s_chemin_mini."/mini_".$s_mini_img."
";
}
else
{
//echo "creation de la miniatures
";
resize( $s_chemin_mini."/", $s_mini_img);
}
// mise à jour du fichier xml
$s_xml .="<detail nomimage="".$nomimage."" urlimage="".$s_nomrep_courant."/".$scanimg."" nomrepertoire="".$nomrep."" vignette="".$s_nomrep_courant."/mini_".$scanimg."" >Des commentaires optionnels)


</detail>";
$tri[]=$nomimage;
}
// remplit le tableau des répertoires
array_push ($listeRepertoires, $nomrep);
}
}
}
sort($tri);
// Initialization d'un array qui contiendra la liste triée.
$trie=array();
foreach ($tri as $key => $val) {
// Vérification de la présence de l'image ...
if (preg_match('/(nomimage="'.$val.'")/', $s_xml)) {
// Extraction de cet 'item' de la liste ...
$regex='/(<detail\snomimage="'.$val.'"\surlimage="[^"]+?"\snomrepertoire="[^"]+?"\svignette="[^"]+?"\s>[^<]*?<\/p><\/detail>)/';
if (preg_match($regex, $s_xml, $res)) {
// Sauvegarde de l'item dans l'array final ...
$trie[] = $res[0];
}
}
}

unset($s_xml);
foreach ($trie as $key => $val) {
$s_xml .= $val;
}
closedir($repActu);
return true;
}
}


// entrée : le nom du répertoire (le chemin), le nom du fichier à redimensionner
// sortie : true or false
// fonction : redimensionne des images
function resize($s_chemin, $file)
{
$size = getimagesize($s_chemin.$file);


$dest_width = ($size[0]/3); //détermine la taille de la miniature, ici l'on désire quelles soient d'un sixième de leur taille normale
$dest_eight = ($size[1]/3);
//$dest_width = 200;
//$dest_eight = 200;

$src_img = imagecreatefromjpeg($s_chemin.$file);
$dst_img = imagecreatetruecolor($dest_width,$dest_eight);

imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_eight, $size[0], $size[1]); // la fonction qui redimensionne les photos
imagejpeg($dst_img, $s_chemin."mini_".$file, 60);
imagedestroy($src_img);
imagedestroy($dst_img);

return true;
}

$s_xml = "<?xml version="1.0" encoding="utf-8" ?>
";


/*--- Récupère toutes les images d'un répertoire ---*/
$s_xml .= "

";

// Répertoire courant
$repcou = @$_GET["dir"];
if(!$repcou) $repcou = ".";


// Liste des dossiers
$dir = opendir($repcou);
// Scan du répertoire
while($scan=readdir($dir))
{
// Dossier sauf répertoire courant
if(is_dir($repcou."/".$scan)&&($scan!="."))
{
// Répertoire parent
if($scan=="..")
{
// Lien vers le répertoire parent
if($repcou!=".")
{
$tmp = strrpos($repcou,"/");
$s_nomrep_courant = substr($repcou,0,$tmp);
}
}
else
{
$s_nomrep_courant = $repcou."/".$scan;
$b_retour = listerIMG($s_nomrep_courant);

}
}
}
closedir($dir);

$s_xml .="

";


/*--- Traitement des répertoires --*/
$i_taille = sizeof($listeRepertoires);
$listeRep = array_unique ($listeRepertoires); // enlève les doublons du tableau
//print_r($listeRep);
$cpt = 0;
$s_xml .= "<repertoires>";
//foreach ( $listeRep as $value )
//{
$s_xml .= "
<t id="".$cpt."">".$groupe."</t>";
$cpt++;
//}

$s_xml .= "
</repertoires>
";


/*--- Les textes de la galerie flash --*/
$s_chargement = "Chargement du xml en cours...";

$s_xml .= "
<texte langue="FR">
<t id="0">Suivant</t>
<t id="1">Précédent</t>
<t id="2">Undefined</t>
<t id="3">Retour</t>


<t id="90">Chargement du xml en cours...</t>
<t id="91">Chargement de l'image en cours...</t>
<t id="92">Chargement en cours...</t>
<t id="93">test</t>

";


$nbre = rand(1000, 3505);

$s_xml .= "\n<t id="".$nbre."">Kill Cache</t>
</texte>";

/*--- mise en utf8 des caractères accentués ---*/
$s_accentues = array("à","ç","è","é","ê","ë","î","ô","ù");
$s_utf8 = array("à","ç","è","é","ê","ë","î","ô","ù");

$s_xml = str_replace($s_accentues, $s_utf8, $s_xml);


/*--- création du fichier xml ---*/
$nomFic = "images.xml";
$fichier = fopen($nomFic,"w");
fwrite($fichier,$s_xml);
fclose($fichier);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Language" content="fr">
<META NAME="DESCRIPTION" CONTENT="Galerie photo dynamique en flash">
<META NAME="KEYWORDS" CONTENT="galerie,photo,flash,dynamique,gratuite">
<META NAME="robots" CONTENT="index">
<META NAME="REVISIT-AFTER" CONTENT="16 days">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Galerie Photo</title>
<style type="text/css">
<!--
body,td,th {
color: #FFFFFF;
background-color: #a89898;
}
.copy{
color:#fff;
font-size:11px;
}
.copy a{
color:#fff;
font-size:11px;
text-decoration:none;
}
.copy2 a{
color:#fff;
font-size:16px;
text-decoration:none;
}
.copy2 a:hover{
color:#fff;
font-size:16px;
text-decoration:underline;
}
.copy a:hover{
color:#000;
font-size:11px;
text-decoration:none;
}
-->
</style>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>



<script type="text/javascript">
AC_FL_RunContent( 'width','790','height','505','align','middle','src','loader-galerie?nomswf=galerie.swf&version=1&largeur=790&hauteur=505&urlxml=<? echo $nomFic; ?>&chaine1=<? echo $s_chargement; ?>&couleurfond=<? echo $s_couleurfond; ?>&couleurfondtitre=<? echo $s_couleurfondtitre; ?>&couleurtitre=<? echo $s_couleurtitre; ?>&couleurBtn=<? echo $s_couleurBouton; ?>&couleurTxtBtn=<? echo $s_couleutTxtBouton; ?>&nomficphp=<? echo $s_nom_fichier_php; ?>','quality','best','bgcolor','#ffffff','allowscriptaccess','sameDomain','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','loader-galerie?nomswf=galerie.swf&version=1&largeur=790&hauteur=505&urlxml=<? echo $nomFic; ?>&chaine1=<? echo $s_chargement; ?>&couleurfond=<? echo $s_couleurfond; ?>&couleurfondtitre=<? echo $s_couleurfondtitre; ?>&couleurtitre=<? echo $s_couleurtitre; ?>&couleurBtn=<? echo $s_couleurBouton; ?>&couleurTxtBtn=<? echo $s_couleutTxtBouton; ?>&nomficphp=<? echo $s_nom_fichier_php; ?>' ); //end AC code
</script><noscript><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="790" height="505" align="middle">

&chaine1=<? echo $s_chargement; ?>&couleurfond=<? echo $s_couleurfond; ?>&couleurfondtitre=<? echo $s_couleurfondtitre; ?>&couleurtitre=<? echo $s_couleurtitre; ?>&couleurBtn=<? echo $s_couleurBouton; ?>&couleurTxtBtn=<? echo $s_couleutTxtBouton; ?>&nomficphp=<? echo $s_nom_fichier_php; ?>">

&chaine1=<? echo $s_chargement; ?>&couleurfond=<? echo $s_couleurfond; ?>&couleurfondtitre=<? echo $s_couleurfondtitre; ?>&couleurtitre=<? echo $s_couleurtitre; ?>&couleurBtn=<? echo $s_couleurBouton; ?>&couleurTxtBtn=<? echo $s_couleutTxtBouton; ?>&nomficphp=<? echo $s_nom_fichier_php; ?>" quality="best" bgcolor="#ffffff" width="790" height="505" align="middle" allowscriptaccess="sameDomain" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" />
</object></noscript>

<?php }
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Site image</title>
<style type="text/css">
<!--
body,td,th {
color:#fff;
background-color:#a89898;
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size:12px;
margin-bottom:0;
margin-top:0;
height:100%;
}
.titre{
font-size:26px;
font-weight:bold;
color:#FFFFFF;
}
a{
text-decoration:none;
color:#fff;
}
a:hover{
text-decoration:none;
color:#000;
}
.soustitre{
color:#000;
}
.copyright{
color:#fff;
font-size:11px;
}
.copyright a{
color:#fff;
font-size:11px;
text-decoration:none;
}
.copyright a:hover{
color:#000;
font-size:11px;
text-decoration:none;
}
.tableau{
vertical-align:middle;
}
-->
</style></head>
<td>
<?
echo 'Erreur';?>
Essayez de vous reconnecter

<? mysql_close();
}?>


</html>
0
f0nzy Messages postés 22 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 24 juillet 2009
6 juil. 2009 à 17:49
J'ai résolu le probleme, la galerie marche très bien, j'ai du utiliser strpos plutot que preg_match

Merci bcp
0
Rejoignez-nous