Pereiti prie turinio

krekas

Patvirtinti nariai
  • Pranešimai

    875
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    100%

Reputacijos išklotinė

  1. Patinka
    krekas sureagavo į Friday Kaip padaryti vardadienių, orų, tv programos ir t.t. autosistemą   
    Iki mokslo metų pradžios dar liko šiek tiek laisvo laiko, tai nutariau parašyti tokį straipsnelį. Gal kam bus naudingas.
     
    Kažkada pačiam niekaip nedavė ramybės klausimas, kaip įmanoma tinklalapyje sukurti sistemą, kad rašytų kokie šiandien vardadieniai, orai, tv programa ir t.t., ir kad automatiškai tai keistųsi, kad nereikėtų pačiam administratoriui keisti. Tokiai sistemai sukurti didelių žinių nereikia, bet vis tiek reikia bent PHP pagrindų išmanymo, tačiau pasistengsiu parašyt paprastai ir aiškiai, kad jei prireiks, tai galėtų pabandyt susikurti ir PHP nemokantys žmonės.
     
    Šį uždavinį galima atlikt ne vienu būdu. Galima naudoti soketus, curl, bet aš parodysiu paprasčiausią variantą, su file() funkcija.
     
    Tarkim darome sistemą, kuri turėtų parodyti šiandienos vardadienius. Pirmiausia turime internete susirasti kitą tinklalapį, kuriame tokia sistema jau yra. Pvz.: http://www.sveikinimai-sveikinimai.lt/vardadieniai/
     
    Darbas:
     
    Pirmiausia reikia mums prisijungti prie tinklalapio, iš kurio imsime informaciją, šiuo atveju vardadienius. Kad būtų aiškiau, pradžiai galima pasirašyti tokį skriptuką:

    <?php $nuskaityti_i_masyva = file('http://www.sveikinimai-sveikinimai.lt/vardadieniai/'); for($i=0;$i<=count($nuskaityti_i_masyva);$i++) { $src .= $nuskaityti_i_masyva[$i]; } echo $src; ?>
    Dabar paleidę šitą kodą pamatysit savo adresą, tačiau http://www.sveikinimai-sveikinimai.lt/vardadieniai/ puslapio išvaizdą. Su file() funkcija prisijungiame prie jau minėto tinklalapio, nuskaitome HTML kodą ir sudedame į masyvą. Toliau seka ciklas. Ciklo tikslas - masyvą su tinklalapio HTML kodu paversti paprastu kintamuoju. Visas tinklalapio HTML kodas yra priskiriamas kintamajam $src. Tam, kad patikrinti ar viską atlikome teisingai, parašome echo $src;
     
    Dabar, kad būtų lengvesnis tolimesnis darbas, eilutę echo $src; ištrinam ir vietoj jos parašom: echo htmlspecialchars($src);
     
    Funkcija htmlspecialchars() išjungia HTML tagus. Tarkime jei parašysime echo '<b>Labas</b>'; tai mums grąžins: Labas, bet jei parašysime echo htmlspecialchars('<b>Labas</b>'); tai mums ir grąžins: <b>Labas</b>.
     
    Taigi, parašę echo htmlspecialchars($src); pamatome visą puslapio HTML kodą. Pamatome todėl, kad atlikus pirmuosius veiksmus, mums buvo grąžintas to puslapio HTML kodas su visais HTML tagais ir mes matėme puslapio išvaizdą, o dabar, kai pasinaudojom funkcija htmlspecialchars(); tai išjungėme visus HTML tagus, ir matome jau nebe puslapio išvaizdą, bet jo HTML kodą.
     
     
    Pirmas darbo etapas įveiktas. Dabar laikas kitam etapui - teksto karpymui.
     
    Turime prieš akis mums reikalingo puslapio HTML kodą. Kad nereiktų ilgai knaisiotis prie kodą, galime tiesiog pasinaudoti ctrl+f. Prieš tai užmetam akį kieno šiandien vardadieniai (šiuo metu, kai rašau straipsnį, vardadienius švenčia: Steigvilė, Augustinas, Patricija). Taigi, spaudžiu ctrl+f ir suvedu tekstą Steigvilė, Augustinas, Patricija (žinoma kas skaitys šį straipsnį kitomis dienomis, tai turės vesti nebe šituos vardus) ir spaudžiu Enter. Mane iškarto "numetė" prie tos HTML kodo vietos, kurioje yra vardai. Aplinkui matome labai daug visokio mums nereikalingo teksto, o mums reikia tik vardų, vadinasi turėsime išsikirpti vardus.
     
    Šiai užduočiai galime naudoti daugybę funkcijų, daugybę būdų, bet asmeniškai tam naudoju explode(), strpos(), substr() ir kartais str_replace() funkcijas.
     
    Paprasčiausiai yra viską atlikti su explode() funkcija (su ja šiuo atveju ir atliksim darbą), bet trumpai apžvelgsiu visas paminėtas funkcijas (gal kam prireiks).
     
    Funkcijos:
     
    strpos() - nustato kokio nors ženklo poziciją tekste. Reikalauja 2 argumentų: 1. Tekstas, kuriame ieškosim mums reikalingo simbolio vietos. 2. Simboli-s/ai, kurių ieškosim tekste. Pavyzdys:

    <?php $pozicija = strpos('a475c45j', 'c'); echo $pozicija; ?>
    Gausim atsakymą: 4, nes ieškom raidės "c" tekste "a475c45j" (P.S. Šitoj funkcijoj pirma pozicija yra prieš pirmą raidę, šiuo atveju prieš raidę "a").
     
     
    substr() - funkcija skirta iškirpti kokią nors vietą iš teksto. Reikalauja 3 argumentų: 1. Tekstas, iš kurio kirpsim. 2. Ženklas (skaičiumi), nuo kur pradėsim kirpti (jei užmeskit akį į strpos() jau manau turėtumėte pastebėt ryšį). 3. Kiek kirpsim (skaičiumi). Pavyzdys:

    <?php $kerpam = substr('labas kaip sekasi?', 6, 4); echo $kerpam; ?>
    Atsakymą gavom "kaip". Skaičius 6 nurodė, kad pradėsim kirpti nuo 6 ženklo, o skaičius 4 parodė, kad kirpsim per 4 ženklus (tarpas taip pat skaičiuojasi kaip ženklas).
     
     
    explode() - funkcija skirta tekstą skaidyti į masyvą pagal kažkokį ženklą. Reikalauja 3 argumentų, tačiau mums svarbūs tik pirmi 2 argumentai: 1. Ženklas, pagal kurį skaidysim tekstą. 2. Tekstas, kurį skaidysim. Pavyzdys:

    <?php $tekstas = 'labas z kaip z sekasi'; $skaidom = explode('z', $tekstas); echo $skaidom[0]; ?>
    Atsakymą gavome "labas". Todėl, kad nurodėme, kad tekstą skaidysime pagal raidę "z". Kadangi raidė "z" paminėta 2 kartus, vadinasi tekstą perskėlėme į 3 dalis: "labas", "kaip" ir "sekasi". echo $skaidom[0]; - laužtiniuose skliaustuose nurodome kokią dalį norime pamatyti (masyve pradedama skaičiuoti nuo 0). Jei parašysime echo $skaidom[1]; - atsakymą gausime "kaip". Jei parašysime echo $skaidom[2]; - atsakymą gausime "sekasi".
     
     
    str_replace() - funkcija skirta vienus žodžius arba ženklus pakeisti kitais žodžiais arba ženklais (dažnai naudojama kuriant įvairias bendravimo sistemas, kad cenzūruoti keiksmažodžius). Reikalauja 3 argumentų: 1. Žodžiai, kuriuos norime pakeisti. 2. Kokiais žodžiais pakeisime tuos neįtikusius žodžius. 3. Tekstas, kuriame bus tie žodžiai. Pavyzdys:

    <?php $tekstas = 'labas kajp tau sekasi?'; $pakeista = str_replace('kajp', 'kaip', $tekstas); echo $pakeista; ?>
    Atsakymą gausime "labas kaip tau sekasi?", nes žodį "kajp" pakeitėme žodžiu "kaip".
    Tikiuosi, kad jau įžvalgesni (nemokantys PHP) suprato, kad argumentai funkcijoje skiriami kableliais. ;)
     
     
    O dabar visas kodas:

    <?php $nuskaityti_i_masyva = file('http://www.sveikinimai-sveikinimai.lt/vardadieniai/'); for($i=0;$i<=count($nuskaityti_i_masyva);$i++) { $src .= $nuskaityti_i_masyva[$i]; } $skeliam_pradzia = explode('"virsus_vardadieniai_tekstas">', $src); $skeliam_pabaiga = explode('</span>', $skeliam_pradzia[1]); echo '<b>Dienos vardadieniai: </b>'.$skeliam_pabaiga[0]; ?>
     
    Kodo pradžią jau aiškinau viršuje. Dabar žiūrime toliau. Eilutė: $skeliam_pradzia = explode('"virsus_vardadieniai_tekstas">', $src); - šita eilutė reiškia, kad perskeliam visą tekstą ties žodžiais "virsus_vardadieniai_tekstas"> Jei po šitos eilutės parašysime echo htmlspecialchars($skeliam_pradzia[0])."<br/><br/>"; tai pamatysime visą pirmą teksto dalį, kurią atskėlėme. Iki pat vardų. Tačiau mums pirmos dalies nereikia, mums reikia dalies su vardais, vadinasi $skeliam_pradzia[0] mums netinka. Bandom $skeliam_pradzia[1]. Parašę echo htmlspecialchars($skeliam_pradzia[1])."<br/><br/>"; jau pamatysime vardus, tačiau vis dar gale vardų liks šiek tiek mums nereikalingo HTML kodo. Vadinasi $skeliam_pradzia[1] mums tinkamas, bet dabar dar reikia nuimt tą pabaigą su HTML simboliais ir keliais žodžiais. Žinoma galime pasinaudoti funkcija str_replace(), bet galim dar kartą panaudoti funkciją explode().
    $skeliam_pabaiga = explode('</span>', $skeliam_pradzia[1]); - šita eilutė nurodo, kad skeliam likusį tekstą per simbolį </span>. Jei po eilute $skeliam_pabaiga = explode('</span>', $skeliam_pradzia[1]); parašytumėm echo htmlspecialchars($skeliam_pabaiga[1])."<br/><br/>"; tai gautumėm tuos likusius HTML simbolius ir kelis žodžius, kitaip tariant pabaigą, nes parašėm $skeliam_pabaiga[1], bet mums nereikia tos pabaigos, vardai buvo pradžioje, vadinasi mums tinkamas yra $skeliam_pabaiga[0]
    Pabaigoje paparasčiausiai parašome echo '<b>Dienos vardadieniai: </b>'.$skeliam_pabaiga[0]; ir išvedame šiandienos vardadienius į ekraną. Viskas. ;)
     
    Veikiantį skriptą galite pamatyti čia: http://mobilus24.lt/vardadieniai.php
     
    Pradžioj buvo mintis padaryti ir pavyzdinius orų bei tv programos kodus, bet vėliau patingėjau. :) Vis dėlto, jei kam reikės, prašykit temoj ir turėdamas laiko parašysiu kodą.
  2. Patinka
    krekas gavo reakciją nuo adrenalinas www.musicwaves.lt   
    Eilinis muzikos puslapis, tokių jau pilna.
  3. Patinka
    krekas gavo reakciją nuo adrenalinas www.musicwaves.lt   
    Eilinis muzikos puslapis, tokių jau pilna.
  4. Patinka
    krekas gavo reakciją nuo Augustinas Adobe cs4   
    Nueini adobe.com ir pasižiūri visus aprašymus viską :)
  5. Pagarba
    krekas gavo reakciją nuo Mantas hak3r1z - naujas narys, o gal ir geras jūsų draugas. ;}   
    Nu tai bet kokį parodyk dizainą :)
  6. Patinka
    krekas gavo reakciją nuo adijux Web dizaino pamoka   
    Turi siūsti tikrai, ką rašo?
  7. Patinka
    krekas gavo reakciją nuo adijux Web dizaino pamoka   
    Puiku, daugiau tokių pamokų ;)
  8. Patinka
    krekas gavo reakciją nuo adijux Web dizaino pamoka   
    Puiku, daugiau tokių pamokų ;)
×
×
  • Pasirinkite naujai kuriamo turinio tipą...