fonction qui marche pas

SiSi231
Invité n'ayant pas de compte PHPfrance

29 nov. 2006, 20:14

Voici le code en question :

Code : Tout sélectionner

function is_jpg ($file) { return substr($file,-3) == "JPG"; } function concatene ($t1,$t2) {//concatène deux tableaux if ((count ($t1) ==0) and (count ($t2)==0)) return false; if ((count ($t1) ==0) and (count ($t2)!=0)) return $t2; if ((count ($t1) !=0) and (count ($t2)==0)) return $t1; for ($i==0; $i<=count($t1); $i++) $tr[] = $t1($i); for ($i==0; $i<=count($t2); $i++) $tr[] = $t2($i); return $tr; } function jpg_list ($dir) { // renvoit l'ensemble des fichiers JPG contenus dans $dir et ses sous-dossiers $rrep = opendir ($dir); while (false!= ($ffile = readdir($rrep))) { if (is_jpg($ffile)) $list_files[] = $ffile; elseif (is_dir($ffile)) { if (!isset ($list_files)) $tt = jpg_list($ffile); else $tt=concatene($list_files,jpg_list($ffile)); if ($tt != false) $list_files = $tt; } } closedir ($rrep); return $list_files; }
et ma question : pourquoi jpg_list ne marche pas ?

Mammouth du PHP | 1776 Messages

29 nov. 2006, 22:36

Car tu appelle ta fonction...dans ta fonction à appeller.. :wink:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 nov. 2006, 23:36

Car tu appelle ta fonction...dans ta fonction à appeller.. :wink:
Récursivité :)

Pour la question.... on à le droit à des indices, genre : "un message d'erreur", "résulat obtenu", identifier une ligne qui peut poser souci...

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 nov. 2006, 10:47

Bon aller, je tente ma chance...
function is_jpg ($file) 
{ 
return substr($file,-3) == "JPG"; 
} 
Cette fonction retourne vrai si les 3 dernier caractère de $file sont "JPG" en majuscule... elle retourne donc faux pour gif, png, .... de même que pour jpg, JpG, jPg, jpeg

Un p'tit coup de strToUpper() sur la chaine à comparer ? voire prendre en compte le possible jpEg, ou se baser sur le type mime plutot que l'extension ? ;)

Par ailleurs, je te recommande d'indenter et d'aérer ton code (ça ne le rendra que plus lisible :)) et éventuellement de le commenter d'avantage (ça ne le rendra que plus compréhensible, pour nous, mais aussi pour toi quand on te demanderas une modification mineure dans 6 mois ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...