Page 1 sur 1

erreur sur gestionnaire rangement image en php

Posté : 25 nov. 2015, 19:16
par ewen
bonjour, J'ai un petit probleme sur un projet,
j'ai 2 dossiers
class/Image.php

Code : Tout sélectionner

<?php class Image { public function __construct() { //Le constructeur est vide pour ce projet } /*methode retournant les fichiers présents dans la répertoire où nous avons placé nos images et que nous dénissons au moyen de variable $image_dir */ public function getImages($image_dir) { //iterator //Nous ouvrons le dossier $image_dir avec opendir //et affectons le résultat à la variable $handle if ($handle = opendir($image_dir)) { // while (false !==($entry = readdir($handle))) { /*la variable $enttry ne pourrra pas se voir affecté les. et les ..*/ if ($entry != "." && $entry != "..") { /*nous affectons le résultat dans un array*/ //Utilisation de $this pour appeler la méthode getImageData $images[] = $entry; } } } closedir($handle); // Nous fermons le repertoire avec closedir return $images ; //Nous retournons le tableau de données } }
et
index.php

Code : Tout sélectionner

<?php require('class/Image.php'); ?> <!doctype> <html> <head> <meta charset="UTF-8"> <title>Rangement d'images</title> </head> <body> <h1> Rangement d'images </h1> <?php $image_dir = '/Applications/MAMP/htdocs/devoir_image/vrac/'; $avions = '/Applications/MAMP/htdocs/devoir_image/avions/'; $montagne = '/Applications/MAMP/htdocs/devoir_image/montagne-2009/'; $photo = '/Applications/MAMP/htdocs/devoir_image/photo/'; $image = new Image(); $images = $image->getImages($image_dir); foreach($images as $key => $name) { $explode = explode('-',$name);//explode — Coupe une chaîne en segments if($explode[0] == 'avions')// je sépare le nom de la série avion - numéro - extension { rename($image_dir.$name,$avions.$name);//rename — Renomme un fichier ou un dossier } else { if($explode[0] == 'montagne-2009')//je sépare le nom de la série montagne_2009 - numéro - extension { } rename($image_dir.$name,$montagne.$name); } } $image = new Image(); $images_avion = $image -> getImages($avions); $images_montagne = $image-> getImages($montagne); echo '<h2>Liste des photos d\'avions</h2><ul>' ; foreach($images_avion as $id => $avion) { echo '<li>' .$avion. '</li>'; } ?> </ul> <?php echo '<h2>Liste des photos de montagne-2009 </h2><ul>' ; foreach($images_montagne as $id => $montagne) { echo '<li>' .$montagne. '</li>'; } ?> </ul> </body> </html>
les photos se rangent bien dans les dossiers mais j'ai 2 erreur que je ne comprend pas,

si quelqu'un pouvait m'aider je lui en serait très reconnaissant merci

Notice: Undefined variable: images in /Applications/MAMP/htdocs/devoir_image/class/Image.php on line 37

Warning: Invalid argument supplied for foreach() in /Applications/MAMP/htdocs/devoir_image/index.php on line 31

Re: erreur sur gestionnaire rangement image en php

Posté : 25 nov. 2015, 19:29
par or 1
$images = array();
avant d'entrer dans la boucle dans la méthode de ta classe, sinon la variable n'existe pas après la boucle.
à priori, la seconde erreur découle de la première.