webForumDet fria alternativet

Fel i while-slinga?

PHP

2 svar · 180 visningar · startad av pettsson

Medlem sedan jan. 20021 122 inlägg
Frågan#1

Jag försöker visa alla bilder i en mapp med hjälp av nedanstående kod, men av någon anledning verkar det som om while slingan skulle fortsätta även efter att vilkoret brutits, inte bara en gång igenom, utan två...

				while(file_exists("$Bildfil"))
				{
					print "<br>Från album $Serienummer<br><br>";

					$Bildnummer = 1;
					while(file_exists("$Bildfil"))
					{
						$Bildfil = "$Bildmapp/" . (string)$Serienummer . "/" . (string)$Bildnummer . ".jpg";
						$Bildstorlek = GetImageSize("$Bildfil");
						$Bildbredd = $Bildstorlek[0];						
						$Bildhojd = $Bildstorlek[1];
						$Bildratio = $Bildhojd / $Bildbredd;
						$Bildbredd = 350;
						$Bildhojd = 350 * $Bildratio;
						
						print "<img src=$Bildfil height=$Bildhojd width=$Bildbredd><br><br>";
						
						$Bildnummer++;
					}
					
					$Serienummer++;
					$Bildfil = "$Bildmapp/" . (string)$Serienummer . "/" . (string)$Bildnummer . ".jpg";
				}
Medlem sedan juli 2002630 inlägg
#2

eftersom du instruerar while-loopen att köras så länge filen existerar kommer den helt sonika att köras så länge filen existerar.

Medlem sedan jan. 20021 122 inlägg
#3

Men den fortsätter även när filen inte finns... Jag har en mapp med tre undermappar, 1, 2 och 3. I mapp 1 ligger filerna 1.jpg och 2.jpg. Men när scriptet körs försöker den även öppna bilderna 3.jpg och 4.jpg, vilket genererar ett filen finns inte fel. Samma sak med mapparna 2 och 3, den försöker läsa 2 filer mer än vad som finns.

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)