Fel i while-slinga?

PHP

2 svar · 184 visningar · startad av pettsson

Medlem sedan jan. 20021 122 inlägg
Trådstart#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.

395 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
131 ms — hämta statistik (db)
133 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)