Aiheen otsikko näyttäisi olevan kait vähän väärin mut iha sama...
(index.php) <?php //avataan hakemisto kuvat $dir=opendir("."); //luetaan ekan kuvan nimi $nimi=readdir($dir); // luodaan taulukko $list $list=array(); //niinkauan kuin $nimi muuttajia esiintyy, ne talletetaan alkioina $list taulukkoon while($nimi) { $list[]=$nimi; //Poistetaan kaksi ensimmäistä alkiota jonosta, koska niissä on vain pisteitä unset($list[0]); unset($list[1]); //Lukeminen jatkuu $nimi=readdir($dir); } //tiedoston sulkeminen closedir($dir); //Kaikki jonon alkiot tulostetaan foreach($list as $key =>$nimi) { if (preg_match("/\\.(png|jpg|gif|avi|wmv|flv)$/", "$nimi")) echo '<a href="'.$nimi.'"><img src="'.$nimi.'" / height=100></a> '; else echo "<a href=\"$nimi\">$nimi</a> "; } ?>
Mulla on kansio jossa on index.php ja x kuvaa.
Nyt kun koodi tulostaa kansiossa olevat kuvat tai seuraavaan kansioon linkin niin pitäisi saada se viimeinen tulostettava teksti pois, koska siinä on linkki vain tiedostoon index.php. kuinka se onnistuisi.
Viimeisen alkion poisto onnistunee näin:
Tai vaihtoehtoisesti vaihdat foreachin sellaiseksi for-silmukaksi, joka ei käy viimeistä alkiota läpi, eli
Samalla voisi jättää kaksi ensimmäistä alkiota poistamatta ja aloittaa silmukka arvolla $i = 2.
Taisin ymmärtää väärin mutta onko tästä apua...tulostaa siis kaikki tiedostot ja kansiot ja kuvat pikkukuvina. ei pisteitä eikä index.php:tä.
<?php foreach(glob('*') as $dir) { if (preg_match("/\\.(png|jpg|gif|avi|wmv|flv)$/", "$dir")) echo '<a href="'.$dir.'"><br><img src="'.$dir.'" / height=100></a> '; if(strtolower($dir) != 'index.php') echo "<br><a href=\"$dir\">$dir</a>"; } ?>
if (preg_match("/\\.(png|jpg|gif|avi|wmv|flv)$/", "$nimi"))
if (preg_match("/\\.(png|jpg|gif|avi|wmv|flv)$/", "$dir"))
Mistä näitä sikiää? Vaikka kyseessä on vain kauneusvirhe, niin ei laiteta niitä muuttujia sinne lainausmerkkeihin.
TsaTsaTsaa kirjoitti:
Viimeisen alkion poisto onnistunee näin:
...
Tai sitten ihan:
array_pop($list);
Sain sen toimimaan seuraavaan tapaan:
<?php if (preg_match("/index.php/", "$nimi")) echo ' '; elseif (preg_match("/\\.(png|jpg|gif|avi|wmv|flv)$/", "$nimi")) echo '<br><a href="'.$nimi.'"><img src="'.$nimi.'" / height=150></a></br> '; else echo "<br><a href=\"$nimi\">$nimi</a></br> "; ?>
Se vaikuttaakin melko samalta kuin peg:in vastaus.
Kiitos kuitenkin avusta!
Aihe on jo aika vanha, joten et voi enää vastata siihen.