Bonjour,
Petit problème de logique dans ce test conditionnel :
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
<?php
if ($folder[$i] == "multi"){
	$res = count_chars($file[$ii],1);
	$w=0;
	while (list($k,$v)=each($res))
	{
		$w=$w+$v;
	}
	if ($w <= "9"){
		function name()
		{
			$fichier = file("+name.php", FILE_IGNORE_NEW_LINES);
			$i = array_rand($fichier);
			echo "<span class=\"$fichier[$i]\">$fichier[$i]</span><span class=\"et\">et</span><span class=\"second\"><span class=\"$fichier[$i]\" >$fichier[$i]</span></span>";
		}
		name();
	}
	else
		ereg("^(.+)\((.+)$", $file[$ii], $n);
		$fichier = file("+name.php", FILE_IGNORE_NEW_LINES);
		$i = array_rand($fichier);
		echo "<span class=\"$n[1]\">$n[1]</span><span class=\"et\">et</span><span class=\"second\"><span class=\"$fichier[$i]\" >$fichier[$i]</span></span>";
}
else
{
	$res = count_chars($file[$ii],1);
	$w=0;
	while (list($k,$v)=each($res))
	{
		$w=$w+$v;
	}
	if ($w <= "9"){
		function name()
		{
			$fichier = file("+name.php", FILE_IGNORE_NEW_LINES); 
			$i = array_rand($fichier); 
			echo "<span class=\"$fichier[$i]\">$fichier[$i]</span>";
		}
		name();
	}
	else
		ereg("^(.+)\((.+)$", $file[$ii], $n);
		echo "<span class=\"$n[1]\">$n[1]</span>";
}
Ce que je veux faire est :
Si le dossier choisit est "multi" alors renvoyer le nom de fichier 2 fois (avec sous condition que si le nom est de moins de 9 caractère, renvoyer un nom aléatoire provenant d'un fichier name.php, sinon prendre le nom du fichier).
Sinon renvoyer le nom du fichier une seule fois.

Le hic, c'est que si le résultat du test est :
multi avec nom de fichier <9 : 2 noms de renvoyés : OK
multi avec nom de fichier >9 : 3 noms de renvoyés :
dossier autre que multi avec nom de fichier <9 : 1 nom de renvoyé : OK
dossier autre que multi avec nom de fichier >9 : 1 nom de renvoyé : OK

Pourquoi Y a t il 3 noms de renvoyés avec multi else ? J'ai pourtant bien imbriqué les else et les if (enfin je pense)…

Merci de vos éclairages