Moro.
Olis kiva saaha semmonen scripti, joka kertoo esim. 10 sivua, mitä on viimeksi päivitetty päivityspäivämäärineen.
Miten olis filemtime. Käyt luupissa halutut sivut läpi, pistät tiedostot ja ajat taulukkoon, lajittelet taulukon ja tulostat 10 ekaa.
Linkki ei aukee.
Oon aloittelija näissä jutuissa nii en usko, että ite onnistun sitä tekemään. Voin mä kuitenkin yrittää, mut olisin tosi kiitollinen, jos joku vois väsätä semmosen.
Lisätty: Löysin tuon, kun surffailin php.netin sivuilla. En kuitenkaan osaa laittaa näyttämään 10 viimesintä muokattua tiedostoa
Jos sivut on tietokannassa, homma on vielä helpompi. Jos esim. päivityspäivämäärä on timestampina sarakkeessa "last_update" ja sivun nimi sarakkeessa "nimi", niin voit hakea sivut kannasta SQL-lauseella "SELECT nimi FROM sivut ORDER BY last_update LIMIT 10". Ja sitten vaan käyt hakutulokset läpi ja tulostat ne.
Ei oo sivut tietokannassa, eli se ei onnistu.
<h1>Kymmenen viimeksi päivitettyä</h1> <ol> <?php // laitetaan taulukkoon, olin laiska $sivut = Array("index.html", "outdex.html", "majava.html", "kilpikonna.html", "1337.html", "oon.html", "saletisti.html", "hot.html"); foreach($sivut as $sivu) { // jännästi toisin päin nämä, helpompi koodata ;) $ajat[filemtime($sivu)] = $sivu; } krsort($ajat); for($i = 0; $i < 10 && $i < count($ajat); $i++) { echo "<li>" . $ajat[$i] . "</li>\n"; } ?> </ol>
En ole kokeillut, mutta saattaa toimia.
ja esim kaikki html-sivut saadaan taulukkoon helposti:
$sivut = glob("*.html");
<h1>Kymmenen viimeksi päivitettyä sivua:</h1> <ol> <?php $sivut = glob("*.php"); foreach($sivut as $sivu) { $ajat[filemtime($sivu)] = $sivu; } krsort($ajat); for($i = 0; $i < 10 && $i < count($ajat); $i++) { echo "<li>" . $ajat[$i] . "</li>\n"; } ?> </ol>
noin laitoin sivuilleni, numerot 1-10 tulikyl nätisti, mut ei tuu päivitettyjä sivuja.
Tuo $ajat-taulukko pitää varmaankin purkaa foreachilla.
En onnistunu.. Ei tuu sivuja listaan.
Anteeksi. Ajattelinpa taas hölmösti. Tässä testattua koodia:
<h1>Kymmenen viimeksi päivitettyä sivua:</h1> <ol> <?php $sivut = glob("*.php"); foreach($sivut as $sivu) { $ajat[filemtime($sivu)] = $sivu; } krsort($ajat); $count = 0; foreach($ajat as $aika => $sivu) { echo "<li><a href=\"$sivu\">$sivu</a> (" . date("d.m.Y", $aika) . ")</li>\n"; if (++$count == 10) { break; } } ?> </ol>
Noniiih! Nyt toimii. Kiitoskiitos :)
Ainiin..
Se osote mikä siihen tulee ei sais olla muodossa
<a href="http://www.arkku.net/~toni/tiedosto.php"></a>
Pitäs olla:
<a href="http://www.arkku.net/~toni/?sivu=tiedosto"></a>
Koitin jo ite, parse erroreita huutaa, tekispä melkeen mitä tahansa.. ;)
Jostain on jäänyt tälläinen koodi, mitä oon ite välillä tollasissa tapauksissa käytelly:
Aloittelijana minä en nyt osaa tuota pistää oikeeseen kohtaan oikein.. :S
Tämmönen se koodi mulla nyt siis on:
<h1>Kymmenen viimeksi päivitettyä sivua:</h1> <?php $sivut = glob("*.php"); foreach($sivut as $sivu) { $ajat[filemtime($sivu)] = $sivu; } krsort($ajat); $count = 0; foreach($ajat as $aika => $sivu) { echo "-".date("d.m.Y", $aika)." <a href=\"$sivu\">$sivu</a> <br>\n"; if (++$count == 10) { break; } } ?>
<h1>Kymmenen viimeksi päivitettyä sivua:</h1> <?php $sivut = glob("*.php"); foreach($sivut as $sivu) { $ajat[filemtime($sivu)] = $sivu; } krsort($ajat); $count = 0; foreach($ajat as $aika => $sivu) { $sivu = substr($sivu, 0, strrpos($sivu, ".")) echo "-".date("d.m.Y", $aika)." <a href=\"?sivu=".$sivu."\">".$sivu."</a> <br>\n"; if (++$count == 10) { break; } } ?>
Toi vois toimii. Turhaa tota tiedostonimee on pilkkoo taulukoksi tossa loopissa, joten purin siitä ton päätteen purkamisen ja laitoin pelkästään sen looppiin.
Eäh.. ei toimi. Huutaa jälleen parse erroria:
Parse error: parse error, unexpected T_ECHO in /home/toni/public_html/etusivu.php on line 71
Örr. Tätä piti välttää ;F Manuaalia nokan eteen ja opettelemaan, ei se valmiilla koodeilla onnistu. Opettelet itse, niin ei tarvitse jokaista pikkujuttua täältä kysyä ;)
Et arvaakkaan kui paljon oon lukenu php juttuja ja yrittäny oppia.. En oo vaan kunnolla kaikkia juttuja älynny..
unexpected T_ECHO, "Odottamaton echo", eli ennen tuota echoa on virhe syntaksissa. Tuollaisessa tilanteessa kannattaa lähteä terkastelemaan edellistä riviä, että siellä on kaikki sulut suljettu ja puolipisteet rivin lopussa...
:) Toimii, kiitos.
Aihe on jo aika vanha, joten et voi enää vastata siihen.