Prljavi odjeljak php. Uključujući datoteke u PHP-u pomoću uključivanja i zahtjeva. Razlika između elemenata odjeljka i članka

Članak koji istražuje element HTML odjeljka iz kategorije sekcije.

Namjena elementa sekcije

Element odjeljka koristi se za stvaranje odjeljka u dokumentu koji zajedno grupira neki predmetni sadržaj. Za svaki odjeljak u dokumentu treba navesti njegov naziv (temu). To se obično radi sa zaglavljima (h1-h6 elementi).

Naslov odjeljka

Sadržaj odjeljka...

Elementi sekcija obično se koriste u sljedećim situacijama:

  • za označavanje odjeljaka unutar odjeljka. Na primjer, za označavanje poglavlja u članku, kartica u dijaloškom okviru, odjeljaka u disertaciji itd.
  • grupirati nekoliko odjeljaka u jednu tematsku grupu. Na primjer, da grupirate najnovije vijesti na web-mjestu, komentare na članak itd.

Stoga bi se element odjeljka trebao koristiti za neki sadržaj samo ako ima naslov i dio je nečeg drugog.

Korištenje elementa sekcije

Na primjer, razmotrite isječak koda stranice koji sadrži članak s komentarima. Svaki od komentara koje je korisnik objavio na stranici sadrži cjeloviti sadržaj i stoga se može smatrati elementom članka. No, u isto vrijeme, svi komentari predstavljaju određenu tematsku skupinu, pa se stoga mogu smjestiti u element odjeljka, t.j. ovaj element će grupirati sve ove komentare na stranici zajedno.

Naslov članka

Komentari (1)

Zaglavlje komentara

Tekst komentara...

Zaglavlje komentara

Tekst komentara...

Naslov članka Komentari Naslov komentara Naslov komentara

Na primjer, razmislite o korištenju elemenata odjeljka za stvaranje odjeljaka unutar elementa članka:

Naslov knjige

Prvo poglavlje

Drugo poglavlje

Treće poglavlje

Dodatak A

Dodatak B

Gornji primjer će imati sljedeći nacrt:

Naslov knjige Prvo poglavlje Drugo poglavlje Treće poglavlje Dodatak A Dodatak B

Ograničenja korištenja elementa odjeljka

Element odjeljka u HTML-u 5 nije generički element za grupiranje sadržaja, tj. ne smije se koristiti za umotavanje sadržaja koji vam se sviđa. Njegova glavna svrha je dodati semantiku dokumentu i stvoriti njegov obris.

Kada autor treba grupirati sadržaj samo da bi ga stilizirao ili njime manipulirao u JavaScriptu, najbolje je mjesto za njega koristiti element div. Element div, za razliku od elementa odjeljka, ne dodaje semantiku dokumentu i ne sudjeluje u stvaranju njegovog obrisa (okvira).

Razlika između elemenata odjeljka i članka

Elementi odjeljka i članka, iako na prvi pogled izgledaju vrlo slični, imaju različita semantička značenja. Element članka namijenjen je grupiranju sadržaja koji je potpun, samostalan i koji se može gledati odvojeno od ostatka sadržaja stranice. A element odjeljka nosi drugačije semantičko značenje, namijenjen je grupiranju sadržaja koji je sastavni dio nečeg drugog.

Ali kako autor može znati što je neki sadržaj na stranici? Pogledajmo ovo na primjeru isječka članka. Isječak je dio članka i stoga se element odjeljka mora koristiti za grupiranje njegovog sadržaja. Ali isti fragment, već ostavljen kao komentar, predstavljat će nešto cjelovito, cjelovito. Stoga se u ovom kontekstu element članak može koristiti za njegovo grupiranje. Ali, naravno, može se razumjeti, i obrnuto. Stoga, koji element koristiti za grupiranje sadržaja u većini slučajeva ovisi o vašem subjektivnom mišljenju kao autora. Ali najvažnije u ovom pristupu je zadržati odabranu poziciju. Stoga, što je autor dosljedniji u stvaranju strukture, to može u nju uložiti više smisla.

Prilikom izrade web stranica na samostalno pisanje (bez korištenja frameworka, CMS-a i drugih modernih stvari koje pojednostavljuju život web programera), susrećemo se s problemom uređivanja stranice kada ima puno stranica.

Kako ne bismo morali mijenjati iste dijelove stranice u svakoj od datoteka stranica, možemo koristiti prikladne PHP upute koje nam omogućuju da u sve stranice ubacimo datoteke s potrebnim kodom s doslovno jednom linijom koda. Zatim, promjenom sadržaja uključene datoteke, mijenjamo kod na svim stranicama stranice. Zgodno, kako god izgledali.

Pogledajmo sada detaljnije načine povezivanja datoteka:

Korištenje include i require

Nećete moći pronaći temeljnu razliku između ove dvije upute uz svu svoju želju, ali postoje nijanse:

Ako dođe do pogreške tijekom izvršavanja naredbe require, parser će primiti fatalni odgovor na pogrešku i izvršenje koda stranice će se zaustaviti, dok će include samo izdati upozorenje i izvršavanje datoteke će se nastaviti (datoteka jednostavno neće biti povezana ).

Uzmimo jednostavan primjer za bolje razumijevanje teme.

Imamo svoju mini stranicu u kojoj su zaglavlje i podnožje isti na svim stranicama, a tijelo dokumenta se mijenja.

Izrađujemo datoteke header.php i footer.php u koje stavljamo kod koji će biti isti na svim stranicama, a u datoteke index.php i newpage.php spojit ćemo statičke dijelove. Kao rezultat, dobivamo:

Sadržaj Header.php

< header> < nav> < a href= "newpage1.php" title= "stavku izbornika" >stavku izbornika < a href= "newpage2.php" title= "stavku izbornika" >stavku izbornika < a href= "newpage3.php" title= "stavku izbornika" >stavku izbornika

Footer.php sadržaj

< footer> < p>Napravljeno od nas

Sadržaj ostalih stranica stranice

Minisite

Puno korisnih informacija

Kao rezultat učitavanja naše stranice, dobivamo sljedeću sliku:

Kao što vidimo, sve radi odlično.

Želio bih vam skrenuti pozornost na činjenicu da smo ovaj primjer pokrenuli na lokalnom Denwer poslužitelju, budući da PHP za rad zahtijeva poslužitelj s podrškom za PHP. Ako izradite web stranicu u jednostavnoj mapi na računalu, ništa neće raditi.

U gornjem primjeru koristili smo zaglavlje zahtijevaju i uključuje podnožje. Na vama je što ćete koristiti na svojim stranicama. Kao što je već spomenuto, među njima nema velike razlike. Osim ako se zahtjev ne smatra nešto strožom izjavom.

Zapravo, linija jednostavno kopira cijeli sadržaj datoteke, put do kojeg naznačimo, unutar dokumenta u kojem se nalazi.

Korištenje include _once i require _once

Prilikom rada na web-mjestu mogu nastati problemi zbog činjenice da je isti dio koda više puta uključen u istu datoteku.

Pretpostavimo da se to dogodilo zbog činjenice da je nekoliko ljudi radilo na mjestu, a kada su kodovi spojeni, pojavio se takav incident ...

Programeri često koriste naredbe include_once i require_once kako bi eliminirali mogućnost takvih problema. Princip rada za njih je potpuno isti kao i za include with require, ali ako je datoteka u takvoj instrukciji već bila povezana s našom, tada do ponovnog povezivanja neće doći.

Nedostaci ove metode uključuju činjenicu da je sporija i računski intenzivnija od svojih prethodnika sa zahtjevom, budući da postaje potrebno zapamtiti sve povezane datoteke i usporediti ih kako bi se izbjeglo dupliciranje koda.

Napomenu

  • Kako bismo lakše razlikovali datoteke stranica web-mjesta i datoteke njihovih fragmenata, koje uključujemo u njih, obično uključene datoteke imenu dodaju dio inc. Uzimajući u obzir ovaj pristup u našem primjeru, dobili bismo datoteku header.inc.php iz datoteke header.php i tako dalje. Ovaj pristup može znatno olakšati razumijevanje strukture stranice u budućnosti.
  • Kod iz datoteke koju povezujemo nasljeđuje opseg reda u kojem je spojen. Tobish samo unutar stranice imat će globalni opseg, a unutar funkcije će imati lokalni.
  • Možemo koristiti uključiti sa zahtjevom gdje god želimo. Čak i unutar skripti.

). Svaka oznaka (odjeljak) mora imati par (/ odjeljak)... Traženi parametri su Ime i petlja... Naziv petlje (odjeljka) može biti bilo koji naziv koji se sastoji od slova, brojeva i podvlaka. Ciklusi (odjeljak) mogu biti ugniježđeni i ugniježđeni nazivi (odjeljci) moraju biti jedinstveni među sobom. Varijabilna petlja(obično niz vrijednosti) određuje broj iteracija petlje. Kada ispisujete varijable unutar odjeljka, naziv odjeljka mora biti naveden pored naziva varijable unutar uglastih zagrada. (drugi odjeljak) se izvršava ako je parametar petlja ne sadrži vrijednosti.

Naziv atributa Vrsta Obavezno Zadano Opis
Ime niz Da n/a Naziv odjeljka
petlja mješoviti Da n/a Vrijednost koja određuje broj iteracija petlje.
početak cijeli broj Ne 0 Indeks položaja na kojem će petlja započeti. Ako je vrijednost negativna, tada se početna pozicija izračunava od kraja niza. Na primjer, ako varijabla petlje ima 7 elemenata i vrijednost startnog atributa je -2, tada će početni indeks biti 5. Nevažeće vrijednosti (vrijednosti izvan niza) se automatski skraćuju na najbližu valjanu vrijednost.
korak cijeli broj Ne 1 Vrijednost koraka koja se koristi za prelazak niza. Na primjer, korak = 2 označava prelazak niza elementima 0,2,4 ... Ako je korak negativan, tada će se niz prijeći u suprotnom smjeru.
max cijeli broj Ne 1 Maksimalni broj iteracija petlje.
pokazati boolean Ne pravi Označava hoće li se ovaj odjeljak prikazati ili ne

Bilješka

Počevši od Smartyja 1.5.0, sintaksa za varijable svojstva sesije promijenjena je iz (% ime sekcije.ime var.%) u ($ smarty.section.sectionname.varname). Stara sintaksa je još uvijek podržana, ali vidjet ćete samo primjere nove sintakse.

index se koristi za prikaz trenutnog indeksa niza, počevši od nule (ili od početnog atributa, ako je navedeno) i povećava se za jedan (ili za vrijednost atributa koraka, ako je navedeno).

Tehnička napomena

Ako atributi korak i početak nisu navedeni, onda je indeks isti kao atribut odjeljka iteracije, osim što počinje s 0 umjesto 1.

iteracija se koristi za prikaz trenutnog broja iteracije petlje.

Bilješka

Ova vrijednost je neovisna o svojstvima start, step i max, za razliku od svojstva indeksa. Također, iteracije počinju od jedan, a ne od nula poput indeksa. rownum je sinonim za svojstvo iteracije, oni rade na isti način.

Primjer 7.38. svojstvo (odjeljak) iteracija

dodijeliti ("custid", $ id); ?> (naziv odjeljka = cu petlja = $ custid početak = 5 korak = 2) iteracija = ($ smarty.section.cu.iteration) indeks = ($ smarty.section.cu.index) id = ($ custid)
(/ odjeljak)

Rezultat ovog primjera:

Iteracija = 1 indeks = 5 id = 3005
iteracija = 2 indeks = 7 id = 3007
iteracija = 3 indeks = 9 id = 3009
iteracija = 4 indeks = 11 id = 3011
iteracija = 5 indeks = 13 id = 3013
iteracija = 6 indeks = 15 id = 3015

Ovaj primjer koristi svojstvo iteracije za ispis naslova tablice svakih pet redaka (koristi (if) s mod operatorom).

(naziv odjeljka = co petlja = $ kontakti) (ako $ smarty.section.co.iteration% 5 == 1) (/ ako) (/ odjeljak)
Ime>DomstanicaE-mail
pogled ($ contacts.name) ($ contacts.home) ($ contacts.cell) ($ contacts.email)


Sadržaj dokumenta

1. funkcija config_load

Sintaksa:
(config_load file = "filename")

Ova funkcija se koristi za učitavanje varijabli iz konfiguracijskih datoteka u predložak. Osim naziva učitane datoteke, ova funkcija može imati nekoliko dodatnih parametara. Na primjer, parametar odjeljka, koji navodi naziv odjeljka za učitavanje. Više informacija o ovim i drugim parametrima možete dobiti u Smarty dokumentaciji.

Primjer:
(datoteka config_load = "task.conf")

2. Funkcija snimanja

Sintaksa:

(ime snimanja = "naziv_bloka"
dodijeliti = "ime_varijable") ...
(/ uhvatiti)

Ova je funkcija dizajnirana da prikupi izlaz predloška u varijablu umjesto da ga prikazuje na ekranu.

Sve između (ime snimanja = "ime varnice") i (/hvatanje) bit će zapisano u varijablu pod nazivom varname. Sadržaj snimljen na ovaj način može se koristiti u predlošku pomoću posebne varijable $ smarty.capture.varname, gdje je varname vrijednost proslijeđena atributu name funkcije hvatanja. Ako naziv varijable nije naveden, koristit će se zadani naziv.

Drugi parametar assign specificira naziv varijable kojoj će se dodijeliti snimljena izlazna vrijednost. Ovaj parametar, kao i naziv, nije obavezan.

3. Funkcija sekcije

Sintaksa:

(naziv odjeljka = "naziv_odjeljka"
petlja = "varijable_for_out_number_iterations"
[, početak = "indeks_početne_pozicije"]
[, korak = "korak"] [, max = "maksimalni_iteracije"]
[, show = "show_or_section"]) ...
(/ odjeljak)

Sekcija Sekcija je petlja za pomicanje elemenata niza. Potrebni parametri su naziv, koji se koristi za postavljanje naziva odjeljka, i petlja, koja je varijabla koja određuje broj iteracija petlje.

U pravilu, petlja je varijabla niza, a broj iteracija odjeljka jednak je broju elemenata ovog niza. Da biste prikazali varijablu unutar petlje, trebate navesti naziv odjeljka u uglastim zagradama nakon naziva varijable.

(naziv odjeljka = umjetnička petlja = $ naslov)

Naslov: ($ naslov)

(/ odjeljak)

Primjer 15.8. Petlja za ponavljanje preko elemenata niza

4. Funkcija foreach

Sintaksa:

(foreach from = "ime_niza"
item = "current_item_name")
... (/ za svakoga)

Osim toga, možete koristiti dodatne atribute ključ - naziv ključa za trenutni element niza i naziv - naziv petlje, s kojim možete pristupiti njegovim svojstvima. Atributi from i item su obavezni.

Foreach petlje su alternativa petljama odjeljka. Foreach funkcija radi vrlo slično PHP foreach petlji.
(foreach from = $ articles item = art)
Naslov: ($ umjetnost)

(/ za svakoga)

Primjer 15.9. Foreach petlja

Foreach petlje imaju svoja svojstva. Možete im pristupiti na sljedeći način: ($ smarty.foreach.foreachname.varname), gdje je foreachname naziv petlje specificiran parametrom imena, a ime varnice je ime svojstva.

5. Operator if, elseif, else

Sintaksa:

(ako izraz) action_block
(elseif izraz1) akcija_blok1
(drugo) action_block2
(/ ako)

Operatorska radnja je gotovo ista kao PHP operator if ... elseif ... else.

Sljedeći operatori usporedbe mogu se koristiti u izrazima: eq, ne, neq, gt, lt, lte, le, gte, ge, je paran, neparan, nije paran, nije neparan, ne, mod, div po, paran po, odd po, ​​==,! =,>,<, <=, >=. Svaki od njih mora biti odvojen od okolnih vrijednosti razmacima. Možete koristiti zagrade u izrazima i pozivati ​​php funkcije.

(ako je $name eq "Vasya")
Dobrodošli, Vasya.
(elseif $name eq "Petya")
Dobro došla, Petya.
(drugo)
Dobrodošli. Tko si ti?
(/ ako)

Primjer 15.10. If, elseif, else izjave

(* ovaj primjer neće raditi jer nema razmaka oko operatora usporedbe *)
(ako $name == "Vasya" || $name == "Petya")
...
(/ ako)
Primjer 15.11. Slomljeni primjer