Foreach fejl ved skift af webhotel

Tags:    php

Hej

Ifbm. skift af webhotel får jeg nu en fejl som jeg ikke har haft før.

Warning: Invalid argument supplied for foreach() in /customers/.../cron.php on line 232

Linie 232 ser sådan ud
foreach (glob('input/*.txt') as $filename) {
...
}

foreach skal have et array som input og det giver glob. Dog kommer fejlen kun når der ikke er nogle *.txt filer i input dir.

Hvad kan være grunden til at jeg får denne "nye" fejl?

Mik D



Indlæg senest redigeret d. 12.11.2010 18:29 af Bruger #4912
3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
glob() returner FALSE hvis der ikke er nogen filer der matcher - så når der ikke er nogen .txt filer i input/ så bliver resultatet af glob() FALSE, og det kan foreach selvfølgelig ikke arbejde med.

Grunden til at du ikke har fået fejlen på dit tidligere webhotel er nok at dit tidligere webhotel ikke har vist fejlmeldinger af WARNING niveau, som dit nye webhotel gør det.

løsningen er at tjekke om glob giver noget først.
Fold kodeboks ind/udKode 




Hej Per

Ok, jeg forventede/troede at foreach var robust nok til et tom array.

Tak. Nu virker der.

Mik D



Hej Per

Ok, jeg forventede/troede at foreach var robust nok til et tom array.

Tak. Nu virker der.

Mik D

Det er den sådan set også, men glob() returnerer ikke et tomt array hvis der ikke er nogen resultater, den returnerer en boolean FALSE.



t