bonjour à tous,

Une bonne journée que celle du dimanche n'est-ce pas ?

Bon voilà j'ai fini un script de redimensionnement des images, ce script fonctionne pour réduire les images de tous le dossier qu'il trouve et en conserve des vignettes dans un dossier créer dans le dossier d'origine voilà le script en question
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
 
<?php
 
$racine = "images";
$dossier_reduit = "petite_images";
$max = 250;
 
lit_dossier($racine);
 
 
function lit_dossier($dir) {
    global $dossier_reduit;
    if (!is_dir($dir)) {
        echo "$dir n'est pas un dossier";
        return;
    }
    //Ouvre le dossierPrincipale et renvoi un tableau 
    $liste = scandir($dir);
    foreach ($liste as $d) {
        if ($d!="." && $d!=".." && $d!=$dossier_reduit && is_dir($dir."/".$d)) {
            echo "$dir/$d est un dossier<br/>\n";
            echo"$dir/$d<br>\n"; // pour recuperer le n° de dossier images
            lit_dossier($dir."/".$d);
        } else { 
            //echo "$dir/$d est un fichier ou . ou ..<br/>\n";
        }
    }
    traiter_dossier($dir);
}
 
function traiter_dossier($gf) {
    global $dossier_reduit, $max;
    $gf .= "/";
    $pf = $gf.$dossier_reduit."/";
 
    // tester si le dossier de destination existe, sinon le créer
    if (!is_dir($pf)) {
        mkdir($pf);
    }
 
    // lister les images du dossier grand_format
    $liste = glob($gf."*{jpg,gif,png,jpeg}",GLOB_BRACE); // => "${gf}*jpg" -> "images/*jpg"
    // $liste = array('images/un.jpg','images/deux.jpg','images/trois.jpg','images/quatre.jpg');
    $imgs = array();
    // pour chaque image du dossier grand_format
    foreach ($liste as $imageG) {
        $fichier = basename($imageG); // "images/un.jpg" => "un.jpg"
        echo "- ${pf}${fichier}<br/>\n";
        // si pas jpg alors renommer en jpg sinon ne rien ajouter
        if (!is_file("${pf}${fichier}")) { // "imagesDesti/un.jpg"
            // créer une copie de l'image dans le dossier petit_format
            reduire($fichier,$gf,$pf,$max);
            echo "j'ai du réduire<br/>\n";
        }
    }
}
 
 
function reduire($fichier, $d_src, $d_dest, $max) {
    // Crée une nouvelle image à partir d'un fichier src
    $ext = trouver_extension($fichier);
    switch($ext) {
        case "jpg":
        case "jpeg":
            $f = "imagecreatefromjpeg";
            $fe = "imagejpeg";
        break;
        case "gif":
            $f = "imagecreatefromgif";
            $fe = "imagegif";
        break;
        case "png":
            $f = "imagecreatefrompng";
            $fe = "imagepng";
        break;
        default:
            return;
    }
    $grande_image = $f("${d_src}${fichier}");
 
    // prend les mesures de l'image src
    $ls = imagesx($grande_image);
    $hs = imagesy($grande_image);
 
    //    On établi une regle de traitement --- si largeur src>hauteur de la source alors
    if ($ls > $hs) {
        $ld = $max;
        $hd = $hs / $ls * $max;
    } else {
        $hd = $max;
        $ld = $ls / $hs * $max;
    }
 
    /*Retourne un identifiant de ressource image en cas de succès, FALSE si une erreur
      survient.en gardant les vrai couleur*/ 
    $petite_image = imagecreatetruecolor($ld,$hd);
    imagecopyresampled($petite_image, $grande_image, 0, 0, 0, 0, $ld, $hd, $ls, $hs);
    /* Enregistre l'image_gd $petite_image dans le fichier "$d_dest$fichier" */
    $fe($petite_image, $d_dest.$fichier);
}
 
function trouver_extension($fichier){
 
    $ext = explode(".",$fichier);
    // Pour vérifier push, pop sert a enlever le dernier element du tableau (voir shift et unshift)
    $extension = array_pop($ext);
    return $extension;
}
 
?>
j'ai d'autre part une requête sql qui fonctionne mais je voudrais pouvoir ajouter à cette requête l'ensemble des images contenu dans un dossier dans le champs images ou url peut importe
je vous mettre le bout de code pour la requête;


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<?php
    mysql_connect("localhost","root",""); // declaration de la connexion
    mysql_select_db("interieu");
    $ligne = 0;
    $handle = fopen("test.csv", "rw");
    while (($data = fgetcsv($handle, 0, chr(9),'|')) !== FALSE) {
    $ligne++;
    $num = count($data);
    //$img = '<img src="images/1-2.jpg" />';
    for ($c=0; $c < $num; $c++) {
      //echo 'Col ['.$ligne.', '.$c.'] = '.$data[$c].'<br />'; 
      echo $data[$c].'<br />';
      //$var2 = $data[2];
      $var1 = substr($data[2], 0, 20);
 
      }
    $query = "INSERT INTO jos_content (`id`,`title`,`alias`,`title_alias`,`introtext`,`fulltext`,`state`,`sectionid`,`mask`,`catid`,`created`,`created_by`,`created_by_alias`,`modified`,`modified_by`,`checked_out`,`checked_out_time`,`publish_up`,`publish_down`) VALUES ('". 
    $data[0] ."','".$data[1]."','".$data[1]."','".$img."','".$var1."','".$data[2]."',1,5,0,0,now(),62,'".idem."',now(),62,76392,now(),now(),'2010-10-10 00:00:00')";
    mysql_query($query);
    ($query);
    echo $query.'<br />';
    //je n'arrive plus qu'a rentrer  le numéros 3 dnas le fichier test.csv, je ne sais pas pourquoi on //va chercher
 }
voilà donc je veux garder en mémoire le n° du dossier et l'ensemble de ces photos pour l'associer à un article dans la base de données,

voilà le problème et j'ai pas envie de me taper tous le chemin à la main.