Duomenų iš textinių failų nuskaitymas bei atvaizdavimas.
Tiems kas neturi priėimo prie duomenų bazių galima naudoti paprastus failus duomenų laikymui.
Susikurkime vardų saugyklą "data/vardai.txt":

Darius [email protected]
Marius [email protected]
Dainius [email protected]

Duomenims atskirti galima naudoti tab (\t), tarpus, "|" atsi=velgiant kokie duomenys bus talpinami.

Dabar parašysime skriptą, kuris šiuos duomenys nuskaito atbuline tvarka, išveda juos po 10 įrašų ir sugeneruoją skaičių eilutę.


<?php
//nurodome, duombazes failą
$DATA_FILE = "data/vardai.txt";
//nurodome, kiek rodyti įrašų
$irasai = 10;
//nuskaitome duomenys į masyvą $vardai
$vardai = file($DATA_FILE);

/*
tikriname ar įvestas $for, jeigu ne arba jis dydesnis už masyvo įrašų kiekį
count($vardai) arba neigiamas, tai for = 0, jei $for įvestas jam priskiriame
1 mažensę reikšmę
*/
if (!$for || $for > count($vardai) || $for <= 0) {
$for = 0;
} else {
$for = $for - 1;
}

/*
organizuojame ciklą išvedantį duomenis, skaitome masyvą nuo paskutinio įrašo
kas 10 įrašų. arba jeigu nurodytas $for skaitome nuo $for 10 įrašų.
*/

for ($i = count($vardai) - 1 - $for; $i >= count($vardai) - $for - $irasai; $i = $i - 1) {
//jeigu $i eilutė netuščia
if ($vardai[$i]) {
//skaidome ją į $vardas ir $email (pagal tabuliaciją "\t")
list ($vardas, $email) = split ("\t", $vardai[$i]);
//nusistatome įrašo numerį
$nr = count($vardai) - $i;
//išvedame duomenys
print "$nr. $vardas $email<br>";
}
}

/*
generuojame skaičių-nuorodų eilutę [nuo-iki] [nuo1-iki1] pvz.: [1-10] [11-20]
ir t.t., jeigu masyvo įrašai viršija nustatyta skaičių, t.y. 10
*/

for ($i = 0; $i <= count($vardai) - 1; $i = $i + $irasai) {
//nusistatome pirmą skaičių "nuo"
$nr = $i + 1;
//nusistatome antra skaičių "iki"
$nr2 = $nr + $irasai - 1;
//jeigu "iki" už masyvo įrašus
if ($nr2 > count($vardai)) {
//tai formuojame skaičių "nuo-masivo_įrašų_kiekis"
$nmr = "$nr-".count($vardai);
//priešingu atveju
} else {
//formuojame skaičių "nuo-iki"
$nmr = "$nr-$nr2";
}
//jeigu pirmas skaičius lygus masivo įrašų kiekiui
if ($nr == count($vardai)) {
//tai formuojame skaičių "nuo-masivo_įrašų_kiekis" arba "nuo"
$nmr = "$nr";
}
//jeigu pirmas skaičius neatitinka paspaustos nuorodos skaičiui įšvedame [skaičius]
if ($nr != $for + 1) {
print "<a href=$PHP_SELF&for=$nr>[$nmr]</a> ";
} else {
//jeigu pirmas skaičius atitinka paspaustos nuorodos skaičiui jį paryškiname
print "[<b>$nmr</b>] ";
}
}

?>

---
[^] Atgal
[«] Skaitykla

* * Gen. time: 0.0193
* © xneox.com