Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: kansion ja tiedoston luku?

Sivun loppuun

Marbo [07.05.2007 19:05:26]

#

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>";
    }

?>

ozmou [07.05.2007 23:05:28]

#

https://www.php.net/array_reverse lienee vastaus jos oikein ymmärsin

Marbo [08.05.2007 01:09:35]

#

ozmou kirjoitti:

https://www.php.net/array_reverse lienee vastaus jos oikein ymmärsin

Saiskohan vähän selvennystä miten tolla sen asian hoitaa?

Blaze [08.05.2007 01:14:17]

#

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.

Marbo [08.05.2007 02:12:51]

#

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?

Blaze [08.05.2007 09:58:24]

#

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.

Marbo [08.05.2007 10:39:56]

#

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?

Heikki [08.05.2007 11:32:52]

#

for ($i=0; $i<=2; $i++) {
 // koodia
}

Lue opasta: https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj3

Antti Laaksonen [08.05.2007 17:41:51]

#

Tai jos haluat välttämättä käyttää foreach-silmukkaa, kirjoita ennen silmukkaa:

$maara = 0;

Ja silmukan loppuun:

$maara++;
if ($maara == 3) break;

Marbo [08.05.2007 17:42:51]

#

Kiitos Antti, nyt sain homman toimimaan. :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta