Autor | Zpráva | ||
---|---|---|---|
Nercom Profil * |
Potřebuji vypsat obrázky v různých složkách za pomocí cyklování for a switch a bohužel ikdyž GLOB() na print_r() vypisuje v pořádku, foreach ani případný sort nefunguje.
Warning: Invalid argument supplied for foreach() in.... <? for ($a = 1; $a <= 4; $a++) { switch ($a) { case "1": $slozka = 'slozka_123'; break; case "2": $slozka = 'slozka_456'; break; case "3": $slozka = 'slozka_789'; break; case "4": $slozka = 'slozka_abc'; break; default: $slozka = 'slozka_123'; break; } $obrazky = glob("../obrazky/".$slozka."/*_thumb.jpg"); foreach ($obrazky as $data) // Warning: Invalid argument supplied for foreach() in { // vypis } } ?> Glob ikdyž ve složce nic není, tak na count() vrací 1. Budu muset udělat podmínku if (count($obrazky) > "1"), aby výpis foreach fungoval jen když tam budou nějaké data. |
||
juriad Profil |
To je divné. Můžeš poslat výstup
var_dump($obrazky) ?
Mimochodem, ten ošklivý switch můžeš nahradit za: $slozky = ['slozka_123', 'slozka_456', 'slozka_789', 'slozka_abc']; foreach ($slozky as $slozka) { ... Asi tuším, co se děje. Může za to ta poznámka: „On some systems it is impossible to distinguish between empty match and an error.“ glob na některých systémech vrací FALSE, když není nic nalezeného. Co že to používáš za systém? Na Linuxu mi glob vrací prázdné pole, jak správně má. A mimochodem: count(FALSE) == 1 Ta podmínka, kterou chceš je: if ($obrazky) { ... } else { echo "Nic nebylo nalezeno"; } |
||
Časová prodleva: 9 let
|
0