Įvairūs Internetas, tinklapių kūrimas

 PHP - Nuskaitymas iš .txt failo

Viskas apie internetą, tinklapių kūrimą, pamokos, patarimai

Standartinė xettit » 2009 Lie 10, 13:53

Taigi tiems kas nemoka naudotis mysql ir kitomis duomenų mbazėmis patariu naudotis txt.
Na tarkim jūs norite kad jūsų pūslapyje rodytu 10 krepšinio komandų.
Susikurkite krepšinio komandų sarašo failiuką "komandos.txt".
Štai skriptas kuris nuskaitys po 10 komandų:

Kodas: Pasirinkti visus
<?php
//nurodome, duombazes failą
$DATA_FILE = "komandos.txt";
//nurodome, kiek rodyti komandų
$irasai = 10;   
//nuskaitome duomenys į masyvą $komandos           
$komandos = 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($komandos) - 1 - $for; $i >= count($komandos) - $for - $irasai; $i = $i - 1) {
    //jeigu $i eilutė netuščia
    if ($komandos[$i]) {
        //skaidome ją į $komandos ir $email (pagal tabuliaciją "\t")
        list ($komanda, $email) = split ("\t", $vardai[$i]);
        //nusistatome įrašo numerį
        $nr = count($komandos) - $i;
        //išvedame duomenys
        print "$nr. $komanda $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($komandos) - 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($komandos)) {                               
            //tai formuojame skaičių "nuo-masivo_įrašų_kiekis"
            $nmr = "$nr-".count($komandos);                           
        //priešingu atveju
        } else {                                                   
            //formuojame skaičių "nuo-iki"
            $nmr = "$nr-$nr2";                                       
        }
        //jeigu pirmas skaičius lygus masivo įrašų kiekiui
        if ($nr == count($komandos)) {                               
            //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>] ";                                   
        }
    }

?>


Kam patiks +rep :)
Vartotojo avataras
xettit
Dalyvis
 
Pranešimai: 128
Miestas: Vilnius
Taškai: 68

Kovų lygis: B

Reputacija: 3 Pridėti reputacijos tašką



Įvairūs Internetas, tinklapių kūrimas

cron

Prisijungti

Forumo stilius

Pasirinkimas:

free tattoo Designs mezoterapija