Bonjour, j'ai un petit soucis et j'aurais besoin de votre aide. Je dois creer un programme. Au départ, nous avons un dossier contenant plusieurs images au format PNG.L’idée principale du projet est de développer un programme, qui concatène toutes ces images en un seul sprite.Mon soucis est lors de l'execution de mon script je me retrouve avec une boucle infinie et je ne sais pas pourquoi... Pouvez vous m'aider?

Voici mon code:

<?php

function list_dir($argv) 
{
            $tableau2 = array();

        foreach($argv as $value)
        {
            if(is_dir($value))
            {
                
                if ($dir = opendir($value)) 
                {
                                    
                    while($file = readdir($dir))
                    {
                    
                        $ignoreList = ['.', '..'];
                        //echo $file . PHP_EOL;
                        if($file != in_array($file, $ignoreList) 
                        && fnmatch("*.png", $file) 
                        || fnmatch("*.jpeg", $file) 
                        || fnmatch("*.jpg", $file) 
                        || fnmatch("*.tiff", $file) 
                        || fnmatch("*gif", $file)) 
                        {
                            $tableau2[] = $file;
                        
                        }
                        
                    }
                
                }
            }
        }
        closedir($dir);


            $largeur_total = 0;
            $hauteurmax    = 0;
        print_r($tableau2);
    
        
        foreach ($tableau2 as $entry) 
        {
            if(fnmatch("*.jpeg", $entry) || fnmatch("*.jpg", $entry))
            {
            
                $source = imagecreatefromjpeg($entry); // Source tableau
                $dimensionsx = imagesx($source);
                $dimensionsy = imagesy($source);
                $largeur_total += ($dimensionsx);
                
                if ($dimensionsy > $hauteurmax) {
                    $hauteurmax = $dimensionsy;
                }
                
                echo $largeur_total;
            
            
            
                $pos     = 0;
                $padding = 0;
                
                $image = imagecreatetruecolor($largeur_total, $hauteurmax); // 
                
                imagesavealpha($image, true);
                $blanc = imagecolorallocate($image, 255, 255, 255);
                
                $transparent = imagecolorallocatealpha($image, 0, 0, 0, 127); // definit l'arriere plan transparent
                
                imagefill($image, 0, 0, $transparent);
            

                // On met les photos dans l'image de destination (l'image de base)
                imagecopymerge($image, $source, $pos, 0, 0, 0, $dimensionsx, $dimensionsy, 100);
                $pos += ($padding + $hauteurmax);

                imagepng($image, "essai.png"); //enregistre l'image modifiée
                echo $pos . PHP_EOL;

            }
        }

        var_dump(list_dir($argv));

    }

    list_dir($argv);