Elikkäs löysin alla olevan koodin netistä ja tarkoituksena on saada tiedostojen sisältö luettua ja pastettua toiselle sivulle. Eli on monta tiedostoa yhessä kansiossa ja kaikkien niiden sisältö pastetaan toiselle sivulle.
Mutta ongelma onki nyt siinä kun käytän tota uutisten näyttämiseen.
Kun lisää uuden uutisen niin ne tulevat muota 00001 ja seuraava on sitten 00002.
Nyt se pastee ne tiedostot nimen mukaan, miten olisi mahdollista saada, että se pasteis tiedostot käänteisessä järjestyksessä? Alla on koodi jos sitä muuttamalla sais?
<?php function file_type($file){ $path_chunks = explode("/", $file); $thefile = $path_chunks[count($path_chunks) - 1]; $dotpos = strrpos($thefile, "."); return strtolower(substr($thefile, $dotpos + 1)); } $file_count = 0; $path = "viestit/uutiset/"; $file_types = array('php', 'txt'); $p = opendir($path); while (false !== ($filename = readdir($p))) { $files[] = $filename; } sort($files); foreach ($files as $file) { $extension = file_type($file); if($file != '.' && $file != '..' && array_search($extension, $file_types) !== false){ $file_count++; include(''.$path.$file.''); } } if($file_count == 0){ echo "<b>Ei uutisia!</b>"; } ?>
https://www.php.net/array_reverse lienee vastaus jos oikein ymmärsin
ozmou kirjoitti:
https://www.php.net/array_reverse lienee vastaus jos oikein ymmärsin
Saiskohan vähän selvennystä miten tolla sen asian hoitaa?
No sehän vaihtaa arrayn alkioiden järjestyksen käänteiseksi.
Tässä tapauksessa nyt on kuitenkin kätevämpää alunperinkin sortata ne siihen käänteiseen järjestykseen, ts. käyttää rsort()a sort()n sijasta.
Blaze kirjoitti:
No sehän vaihtaa arrayn alkioiden järjestyksen käänteiseksi.
Tässä tapauksessa nyt on kuitenkin kätevämpää alunperinkin sortata ne siihen käänteiseen järjestykseen, ts. käyttää rsort()a sort()n sijasta.
Kiitoksia tästä. :)
Osaisitkohan vielä sanoo miten sais silleen, että näkyis vaan 3 tiedostoa sieltä? Tohon samaan koodiin soveltaen tai johonkin muuhun?
Sen sijaan, että kävisit foreachilla kaikki arrayn alkiot läpi ja tulostaisit ne, muuta silmukka tavalliseksi foriksi ja käy läpi vain alkiot 0-2 ja tulosta ne.
Blaze kirjoitti:
Sen sijaan, että kävisit foreachilla kaikki arrayn alkiot läpi ja tulostaisit ne, muuta silmukka tavalliseksi foriksi ja käy läpi vain alkiot 0-2 ja tulosta ne.
Ja mites tämä tehdään?
for ($i=0; $i<=2; $i++) { // koodia }
Lue opasta: https://www.ohjelmointiputka.net/oppaat/opas.
Tai jos haluat välttämättä käyttää foreach-silmukkaa, kirjoita ennen silmukkaa:
$maara = 0;
Ja silmukan loppuun:
Kiitos Antti, nyt sain homman toimimaan. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.