Dinamičke stranice u PHP-u. PHP. Izrada dinamičke stranice Stvorite uobičajenu komponentu za prikaz stranice

U prošloj lekciji smo shvatili od kojih blokova će se sastojati predložak putovanja, tako da možemo krenuti s radom. Prvo, kreirajmo dvije mape:

slike - ova će mapa sadržavati sve grafičke datoteke korištene za dizajn predloška. Jer Još nemamo nikakav razvoj dizajna, tada ispustite bilo koju grafičku datoteku u ovu mapu, inače Joomla neće instalirati predložak i javit će pogrešku ako je mapa prazna.

PAŽNJA: Mapa sa slikama predloška ne sadrži grafički sadržaj!

css - ova će mapa sadržavati kaskadne stilske datoteke. Najprije u nju postavimo praznu datoteku template.css koja će se koristiti za dodjeljivanje različitih stilova dizajna elementima stranice.

Zatim možete početi stvarati glavnu datoteku index.php, koja će odrediti vizualni raspored elemenata stranice i reći Joomla CMS-u u koji blok treba smjestiti različite komponente i module. Datoteka je kombinacija PHP-a i HTML-a.

Uvijek koristim samo Macromedia Dreamweaver kada pišem kod. Odličan program, toplo ga preporučam početnicima, jer... Ako ste pogriješili tijekom rada na kodu, program će svakako istaknuti vašu grešku.

Na stranici ćete pronaći vodič za Macromedia Dreamweaver. Ako namjeravate razvijati web stranice, trebali biste svladati ovaj program, barem na početnoj razini, kako biste uredili kodove predložaka bez pogrešaka.

Pozicioniranje elemenata stranice (blokova) vrši se pomoću HTML koda, koristit ćemo DIV oznake. Ali način na koji će naša stranica raditi na Joomla motoru, tj. bit će dinamičan, tada ćete također morati koristiti PHP jezik. Pomoću njega odredit ćemo u kojim blokovima će se nalaziti pozicije za ispisivanje modula, kako će se te pozicije zvati, hoće li se blokovi sažimati ili ne. Povezat ćemo stilske listove iz vanjskih datoteka, jezik sadržaja, postaviti kako će se mijenjati veličina stranice itd.

indeks.php

Zaglavlje datoteke

Zaglavlje datoteke sastoji se od nekoliko dijelova. Prvi dio PHP koda zaglavlja osigurava da se datoteci ne pristupa izravno, iz sigurnosnih razloga.

< ?php
definirano ("_JEXEC" ) ili umri;
JHtml::_("behavior.framework" , true );
$app = JFactory::getApplication() ;
?>
< ?php echo "< ?" ; ?> xml verzija="1.0" kodiranje=" < ?php echo $ovaj-> _charset ?> "?>

DOCTYPE je vrlo važan parametar na temelju kojeg preglednik odlučuje kako prikazati ovu stranicu i kako interpretirati CSS.

< ! DOCTYPE html PUBLIC "- / / W3C/ / DTD XHTML 1.0 Strict/ / EN""http: // www.w3.org/ TR/ xhtml1/ DTD/ xhtml1- strict.dtd">

Sljedeći isječak dohvaća instalirani jezik iz globalne konfiguracije.

< html xmlns= "http:// www.w3.org/ 1999/ xhtml" xml:lang= " < ?php echo $ovaj-> jezik; ?> " lang= " < ?php echo $ovaj-> jezik; ?> " dir = " < ?php echo $ovaj-> smjer; ?> " >

Sljedeći je dio koda koji uključuje dodatne informacije zaglavlja postavljene u globalnoj konfiguraciji. Ove informacije možete vidjeti ako pogledate izvorni kod bilo koje web stranice. Konkretno, to su meta oznake, za koje već znate.

< head>
< jdoc:include type= "head" / >

Sljedeći redovi zaglavlja sadrže veze na glavne Joomla CSS stilove.

< link rel= "stylesheet" href= "< ?php echo $ovaj-> baseurl ?> / predlošci/ sustav / css/ sustav .css" tip="tekst /css" / >
< link rel= "stylesheet" href= "< ?php echo $ovaj-> baseurl ?> / templates/ system / css/ general.css" tip="tekst /css" / >

Za korištenje stilova dizajna predložaka, povezujemo se s datotekom koja sadrži kaskadne listove stilova template.css, koja se nalazi u mapi CSS. Nema veze što je ova datoteka za sada prazna, najvažnije je povezati je, dizajnom ćemo se pozabaviti kasnije, kada instaliramo predložak na Joomlu. Tako ćete lakše promatrati rezultat.

< link rel= "stylesheet" href= "< ?php echo $ovaj-> baseurl ?> /templates/< ?php echo $ovaj-> predložak ?> /css/template.css" tip="tekst /css" / >

Sljedeći isječak koda omogućuje nam sažimanje lijevog ili desnog stupca ako nema modula smještenih na lijevoj i desnoj poziciji. Ako su oba stupca sažeta, sadržaj zauzima 100% širine stranice. Ako je uključen samo jedan stupac, tada sadržaj zauzima 80%. S dva omogućena stupca, sadržaj čini 60% širine stranice.

< ?php
ako ($ ovaj-> countModules("lijevo i desno" ) = = 0) $contentwidth = "100" ;
ako ($ ovaj-> countModules("lijevo ili desno" ) = = 1) $contentwidth = "80" ;
ako ($ ovaj-> countModules("lijevo i desno" ) = = 1) $contentwidth = "60" ;
?>

Zaglavlje se zatvara

< / head>

< body>

Blok “stranica” sadrži dizajn samo stranice web mjesta, koja će biti široka 950 px.

< div id= "page" >

Blok "top" nalazi se na samom vrhu stranice i sadrži dva bloka "logo" i "user1".

< div id= "top" >

U "logo" bokeh postavit ćemo grafičku datoteku logotipa; to će biti navedeno u listovima stilova. Ali automatski prikaz naziva stranice upisujemo u datoteku index.php, a naziv postavljamo u oznaku H1, što je vrlo važno za optimizaciju tražilice.

< div id= "logo" >
< h1> < ?php echo $app - >getCfg("namename" ); ?>< / h1>
< / div>

Definirajmo poziciju “user1” u istoimenom bloku za prikaz modula za pretraživanje stranice.

< div id= "user1" >
< jdoc:include type= "modules" name= "user1" style= "xhtml" / >
< / div>
< / div> < ! - - конец блока top - - >

Izlaz vodoravnog modula izbornika u bloku "korisnik2" na poziciji "korisnik2". Blok će se srušiti ako na tom mjestu nema modula.

< ?php if ($ovaj-> countModules("user2" ) ) : ?>
< div id= "user2 " >
< jdoc:include type= "modules" name= "user2" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Slijedi blok zaglavlja stranice. U njemu ćemo definirati poziciju "zaglavlja" za prikaz modula. Blok će se srušiti ako na tom mjestu nema modula. Namjerno sam proširio mogućnosti ovog bloka kako bih u njega mogao smjestiti ne samo sliku zaglavlja, već i rotatore slika.

< ?php if ($ovaj-> countModules(" Zaglavlje") ) : ?>
< div id= "Zaglavlje">
< jdoc:include type= "modules" name= "Zaglavlje" style="xhtml" / >
< / div>
< ?php endif ; ?>

U bloku “user3” definiramo poziciju “user3” za izlazne module.

Blok će se srušiti ako na ovoj poziciji "user3" nema izlaza modula.

< ?php if ($ovaj-> countModules("user3" ) ) : ?>
< div id= "user3" >
< jdoc:include type= "modules" name= "user3" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Otvara se blok lijevog stupca koji će se srušiti ako nema modula na poziciji "lijevo".

< ?php if ($ovaj-> countModules("left" ) ) : ?>
< div id= "left" >
< jdoc:include type= "modules" name= "left" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Otvara se najvažniji blok sadržaja koji može zauzimati 100% širine stranice, 80% i 60%, ovisno o broju uključenih stupaca.

< div id= "content< ?php echo $contentwidth ; ?> " >

Prikaz poruka u komponentama

< jdoc:include type= "message" / >

Sadržaj izlaznog sadržaja.

< jdoc:include type= "component" style= "xhtml" / >
< / div> < ! - - конец блока контента- - >

Otvara se blok desnog stupca koji će se srušiti ako nema modula u "desnom" položaju.

< ?php if ($ovaj-> countModules("right" ) ) : ?>
< div id= "rigth" >
< jdoc:include type= "modules" name= "right" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Izlaz bloka "podnožje", dizajniran za prikaz modula "HTML koda" s informacijama o autorskim pravima. Ovdje također možete postaviti donji horizontalni izbornik ili modul za prezentaciju sadržaja. Blok će se sažeti ako je više od jednog modula prikazano u ovoj poziciji "podnožja".

< ?php if ($ovaj-> countModules("footer") ) : ?>
< div id= "footer" >
< jdoc:include type= "modules" name= "footer" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Blok stranice stranice "stranica", tijelo i sav kod su zatvoreni.

< / div> < ! - - конец блока page- - >
< / body> < ! - - конец блока body - - >
< / html> < ! - - конец кода- - >

Napravili smo kompletnu datoteku index.php. Sada znate koje se naredbe koriste i kojim redoslijedom se prikazuju blokovi predložaka.

PAŽNJA: Kako bi se kod predloška mogao pročitati iz joomla admin panela, datoteka index.php mora biti otvorena u AkelPad editoru i spremljena u UTF-8 kodiranju, dok je poništen okvir BOM. Ako ste za rad s datotekom koristili program Macromedia Dreamweaver, tada trebate u gornjem izborniku odabrati “Edit”> “Page Properties” i odabrati kodiranje dokumenta Unicode (utf-8), te poništiti “enable Unicode signatures (BOM) )”. Ipak, toplo vam savjetujem da ne uređujete kod iz Joomla admin panela, ako nešto zabrljate - nema povratka, za razliku od programa Macromedia Dreamweaver, gdje uvijek možete poništiti napravljene promjene.

Sam dizajn blokova bit će opisan u template.css. Ali mi ćemo konfigurirati stilske listove nakon instaliranja predloška na Joomla 3 (joomla 2.5), a za to moramo stvoriti

Mnogi čitatelji u bilo kojoj knjizi o računalima prelete preko svega što nije od neposrednog interesa i prijeđu na ono što im stvarno treba. željeti znati. Osobno, to je upravo ono što radim. No, u tome nema ništa loše – rijetko postoje tehničke knjige koje treba pročitati od korica do korica. Ili ste možda to učinili - preskočili početnih osam poglavlja i uzeli ovo jer je imalo najzanimljiviji naslov? A tko želi gubiti vrijeme na detalje kada još jedan projekt gori na poslu?

Srećom, takva vas žurba neće spriječiti da ispravno savladate gradivo u drugom dijelu knjige, posvećenom korištenju PHP-a za izradu stranica i interakciju s webom. U ovom poglavlju naučit ćete kako jednostavno mijenjati sadržaj web stranica i kretati se webom pomoću poveznica i raznih standardnih funkcija. Sljedeće poglavlje će nadopuniti prezentirani materijal - detaljno ispituje načine interakcije s korisnikom u HTML obrascima. Poglavlje 11 opisuje organizaciju sučelja s bazama podataka. Preostala poglavlja drugog dijela raspravljaju o netrivijalnim aspektima web programiranja u PHP-u.

Međutim, treba imati na umu da materijal u 1. dijelu apsolutno potrebno za normalno poznavanje PHP-a. Pretpostavlja se da ste već pročitali 1. dio, tako da će primjeri koristiti mnoge od prethodno opisanih koncepata. Dakle, ako preletite dijelom knjige, morat ćete se s vremena na vrijeme vratiti na prethodna poglavlja i nadoknaditi propušteno.

Jednostavne veze

<а href = "date.php">

$link = "datum.php";

ispis"<а href = \"$link\">Pogledajte današnji datum
\n"

Vjerojatno se pitate zašto postoji obrnuta kosa crta (\) prije navodnika (") u kodu veze? Činjenica je da su navodnici u PHP-u posebni znakovi i koriste se kao graničnici redaka. Stoga navodnici literali u nizovima moraju biti zaštićeni .

Ako vas smeta izbjegavanje navodnika, jednostavno omogućite način rada magic_quotes_gpc u svojoj datoteci php.ini. Rezultat su svi apostrofi, navodnici, obrnute kose crte i nulti znakovi. su automatski escaped u tekstu!

Razvijmo dati primjer. Za brzi prikaz popisa veza u pregledniku, možete koristiti niz:

// Kreirajte niz odjeljaka

$contents - array("tutorijali", "članci", "skripte", "kontakt");

// Iteracija i uzastopni prikaz svakog elementa niza

za ($i = 0; $i< sizeof($contents; $i++)

ispis" ".$sadržaj[$i]."
\n";

// - posebna oznaka za točku markera endfor;

Komponente datoteke (predlošci)

Došli smo do jedne od mojih omiljenih PHP značajki. Predložak (u odnosu na web programiranje) je dio web dokumenta koji ćete koristiti na nekoliko stranica. Predlošci, poput PHP funkcija, spašavaju vas od nepotrebnog kopiranja/lijepljenja sadržaja stranice i programskog koda. Kako se veličina stranice povećava, tako raste i važnost predložaka koji omogućuju jednostavne i brze izmjene na razini cijele stranice. Ovaj odjeljak će opisati neke od mogućnosti koje se otvaraju korištenjem jednostavnih predložaka.

Obično se uobičajeni dijelovi sadržaja/koda (tj. predlošci) spremaju u zasebne datoteke. Kada izrađujete web dokument, te datoteke jednostavno "uključujete" na odgovarajuća mjesta na stranici. U PHP-u za to postoje dvije funkcije: include() i require().

uključi() i zahtijevaj()

Jedan od najistaknutijih aspekata PHP-a je mogućnost izrade predložaka i programskih biblioteka te njihovog umetanja u nove skripte. Korištenje knjižnica štedi vrijeme i trud u korištenju zajedničkih funkcija na različitim web stranicama. Čitatelji sa

iskustvo programiranja u drugim jezicima (kao što su C, C++ ili Java), te su upoznati s konceptom knjižnica funkcija i njihovom upotrebom u programima za proširenje funkcionalnosti.

Uključivanje jedne ili više datoteka u skriptu vrši se pomoću standardnih PHP funkcija require() i include(). Kao što će biti prikazano u sljedećem odjeljku, svaka od ovih funkcija primjenjuje se u specifičnoj situaciji.

Funkcije

U PHP-u postoje četiri funkcije za uključivanje datoteka u PHP skripte:

  • uključi();
  • uključi_jednom();
  • zahtijevati();
  • zahtijevaj_jednom().

Unatoč sličnosti naziva, ove funkcije rješavaju različite probleme.

Funkcija include() uključuje sadržaj datoteke u skriptu. Sintaksa funkcije include() je:

uključi (datoteka datoteka]

Funkcija include() ima jednu zanimljivu značajku - može se izvršiti uvjetno. Na primjer, ako je poziv funkcije uključen u blok naredbe if. tada je datoteka uključena u program samo ako je uvjet i f istinit. Ako se funkcija includeO koristi u uvjetnoj naredbi, tada je mora biti u vitičastim zagradama ili alternativnim graničnicima. Usporedite razlike u sintaksi između Ispisa 9.1 i 9.2.

Listing 9.1. Neispravna upotreba uključi()

ako (neki_uvjetni)

uključi("tekst91a.txt"); drugo

uključi("tekst91b.txt");

Listing 9.2. Ispravna upotreba funkcije include()

ako (neki_uvjetni) :

uključi("tekst91a.txt");

uključi("tekst91b.txt");

Sav PHP kod u uključenoj datoteci Obavezno leži u PHP oznakama. Nemojte pretpostavljati da će jednostavno spremanje PHP naredbe u datoteku osigurati da se ispravno obradi:

Umjesto toga, trebate zamotati naredbu u odgovarajuće oznake, kao što pokazuje sljedeći primjer:

print "ovo je nevažeća uključena datoteka";

Funkcija include_once() radi isto što i include(), s jednom iznimkom: prije uključivanja datoteke u program, provjerava je li već uključena. Ako je datoteka već uključena, poziv include_once() se zanemaruje, a ako nije, događa se standardno uključivanje datoteke. U svim drugim aspektima, include_once() se ne razlikuje od include(). Sintaksa funkcije include_once() je:

uključi_jednom (datoteka datoteke)

Općenito, funkcija require() slična je include() - također uključuje predložak u datoteci u kojoj se nalazi poziv require(). Sintaksa funkcije require() je:

zahtijevati (file file)

Međutim, postoji jedna važna razlika između funkcija require() i include(). Datoteka koju specificira require() uključena je u skriptu bez obzira na lokaciju require() u skripti. Na primjer, ako pozovete requi re() u bloku if, ako je uvjet lažan, datoteka će i dalje biti uključena u skriptu!

U mnogim je situacijama zgodno stvoriti datoteku s varijablama i drugim informacijama koje se koriste na cijelom mjestu, a zatim je uključiti prema potrebi. Iako je naziv ove datoteke proizvoljan, obično je zovem init.tpl (skraćeno od "initializaion.template"). Ispis 9.3 pokazuje kako izgleda vrlo jednostavna init.tpl datoteka. U ispisu 9.4, sadržaj init.tpl je uključen u skriptu s require().

Listing 9.3. Primjer inicijalizacijske datoteke

$site_title = "PHP recepti";!}

$contact_email = " [e-mail zaštićen]";

$contact_name = "WJ Gilmore";

Listing 9.4. Korištenje datoteke init.tpl

<? print $site_title; ?>

\"mai1 to:$contact_email\">$contact_name."; ?>

Prosljeđivanje URL-a pri pozivanju require() dopušteno je samo ako je omogućen način rada "URL fopen wrappers" (ovaj način je omogućen prema zadanim postavkama).

Kako se veličina stranice povećava, može se ispostaviti da su neke datoteke nekoliko puta uključene u skriptu. Ponekad to ne uzrokuje problem, ali u nekim slučajevima ponovno uključivanje datoteke uzrokuje poništavanje vrijednosti promijenjenih varijabli. Ako uključena datoteka definira funkcije, može doći do sukoba imenovanja. Uz to, dolazimo do sljedeće funkcije - require_once().

Funkcija require_once() osigurava da je datoteka uključena u skriptu samo jednom. Nakon što se pozove requi re_once(), svi daljnji pokušaji uključivanja iste datoteke se ignoriraju. Sintaksa funkcije require_once() je:

Vjerojatno ćete češće početi koristiti značajke uključivanja datoteka kako vaše web aplikacije počnu rasti. Ove se funkcije često pojavljuju u primjerima u ovoj knjizi kako bi se smanjila redundantnost koda. O prvim primjerima raspravlja se u sljedećem odjeljku o načelima konstruiranja osnovnih predložaka.

Građevinske komponente

Kada definiram strukturu tipične web stranice, obično je rastavljam na tri dijela: zaglavlje, tijelo i podnožje. U pravilu, većina pravilno organiziranih web stranica ima zaglavlje koje ostaje gotovo nepromijenjeno; glavni dio prikazuje traženi sadržaj stranice, tako da se često mijenja; Konačno, podnožje sadrži informacije o autorskim pravima i navigacijske veze. Podnožje, kao i zaglavlje, obično ostaje nepromijenjeno. Nemojte me krivo shvatiti - ne pokušavam potisnuti vaše kreativne težnje. Vidio sam mnogo sjajnih web stranica koje ne slijede ta načela. Samo pokušavam osmisliti opću strukturu koja može poslužiti kao polazište za daljnji rad.

Naslov

Datoteka zaglavlja (poput one u ispisu 9.5) pojavljuje se na gotovo svakoj od mojih web stranica s omogućenim PHP-om. Ova datoteka sadrži

informacije na cijelom web-mjestu, kao što su naslov, podaci za kontakt i neke komponente koda HTML stranice.

Listing 9.5. Primjer datoteke zaglavlja

// Datoteka: zaglavlje.tpl

// Svrha: datoteka zaglavlja za web stranicu PhpRecipes.

$site_name = "PHPRecipes";

$site_email= " [e-mail zaštićen]";

$site_path = "http://localhost/phprecipes";

<? print $site_name; ?>

// Ispis trenutnog datuma i vremena

ispis datuma ("F d, h:i a");

Posjetiteljima je često ograničen pristup uključenim datotekama, osobito ako te datoteke sadrže osjetljive informacije (na primjer, lozinke). U Apacheu možete spriječiti pregledavanje određenih datoteka uređivanjem datoteka http.conf ili htaccess. Sljedeći primjer pokazuje kako spriječiti gledanje svih datoteka s nastavkom .tpl:

Narudžba dopusti, odbij

Dopusti od 127.0.0.1

Sigurnosna pitanja PHP-a i web stranice detaljno su obrađena u 16. poglavlju.

Tekući naslov

Podnožje je obično informacija koja se nalazi na dnu stranica stranice - podaci o kontaktu, poveznice i informacije o autorskim pravima. Te se informacije mogu smjestiti u zasebnu datoteku i uključiti kao predložak na isti način kao i zaglavlje. Recimo da s početkom nove godine trebate promijeniti podatke o autorskim pravima i dovesti ih u obrazac “Copyright © 2000-2001”. Postoje dvije mogućnosti: Provedite Badnjak bjesomučno uređujući stotine statičnih stranica. ili koristite predložak poput onog prikazanog u ispisu 9.6. Jedna jednostavna promjena i možete se vratiti svojoj blagdanskoj rutini.

Listing 9.6. Primjer datoteke podnožja (footer.tpl)

kontakt |

vaša privatnost

Obratite pažnju na upotrebu globalne varijable $site_email u datoteci podnožja. Vrijednost ove varijable odnosi se na cijelu stranicu i pretpostavljamo da će datoteke header.tpl i footer.tpl biti uključene u jednu posljednju stranicu. Također obratite pažnju na prisutnost $site_path u vezi Privatnost. Uvijek uključujem puni put do svih veza u svojim predlošcima - da je URL veze samo privacy.php, datoteka podnožja bila bi čvrsto kodirana u određeni direktorij.

Glavni dio

Glavni dio stranice sadrži sadržaj zaglavlja i podnožja. U biti, to je glavni dio koji sadrži informacije koje zanimaju posjetitelje stranice. Zaglavlje izgleda impresivno, podnožje sadrži korisne informacije, ali zbog glavnog dijela stranice korisnici se uvijek iznova vraćaju na stranicu. Iako ne mogu dati nikakav savjet o specifičnoj strukturi stranice, predlošci poput onog u Ispisu 9.7 uvelike pojednostavljuju administraciju stranice.

Listing 9.7. Primjer glavnog dijela stranice (index_body.tpl)

/tutorials.php">tutorijali

članci

skripte

kontakt

Dobrodošli u PHPRecipes. početno mjesto za PHP skripte, upute,

i informacije o gurmanskom kuhanju!

Sve zajedno: zaglavlje, podnožje i tijelo

Možda moje raspoloženje najbolje opisuje rečenica pukovnika “Hannibala” Smitha (George Peppard) iz poznate TV serije “The A-Team”: “Volim kad stvari sjednu na svoje mjesto.” Doživljavam nešto slično gdje se različiti predlošci spajaju u cjeloviti web-dokument. Kombiniranjem tri odjeljka dokumenta: header.tpl, index_body.tpl i footer.tpl, možete brzo izgraditi jednostavnu stranicu poput one prikazane u ispisu 9.8.

Listing 9.8. Izrada index.php stranice uključivanjem nekoliko datoteka

// Datoteka: index.php

// Odredište: PHPRecipes početna stranica

// Ispis naslova

uključi("zaglavlje.tpl");

// Ispis glavnog dijela

uključi("tijelo_indeksa.tpl");

// Prikaz podnožja

uključi("podnožje.tpl");

Pa kako? Tri jednostavne naredbe i imate gotovu stranicu. Tekst završne stranice prikazan je u ispisu 9.9.

Listing 9.9. HTML stranica izgrađena u Ispisu 9.8 (index.php)

PHPRecipes

23. kolovoza, 15:17

tutoriali

članci

skripte

kontakt

Dobrodošli u PHPRecipes, početno mjesto za PHP skripte, upute,

i gurmanske kuharske savjete i recepte!

Autorska prava 2000 PHPRecipes. Sva prava pridržana.

kontakt |

svoju privatnost

Na sl. Slika 9.1 prikazuje kako rezultirajuća stranica izgleda u pregledniku. Iako obično ne koristim obrube tablice, ovaj put sam ih istaknuo kako bi se tri dijela stranice jasnije istaknula na ilustraciji.

Riža. 9.1. Izgled stranice izgrađene u listingu 9.8

Optimizacija predloška

U drugoj (po mom mišljenju, poželjnijoj) opciji, predlošci su dizajnirani kao funkcije smještene u zasebnoj datoteci. Ovo daje dodatnu strukturu vašim predlošcima. Ovu datoteku nazivam inicijalizacijskom datotekom i u nju spremam druge korisne informacije. Budući da smo već pogledali relativno dugačke primjere zaglavlja i podnožja, popisi 9.10 i 9.11 su malo skraćeni kako bi ilustrirali novu ideju.

Listing 9.10. Optimizirani predložak web mjesta (site_init.tpl)

// Datoteka: site_init.tpl

// Svrha: datoteka za inicijalizaciju PhpRecipes

$site_name = "PHPRecipes";

$site_email = " [e-mail zaštićen]";

$site_path = "http://localhost/phprecipes/";

funkcija show_header($site_name) (

<? print $site_name: ?>

Ovo je zaglavlje

funkcija prikaži podnožje()

Ovo je podnožje

Listing 9.11. Korištenje inicijalizacijske datoteke

// Uključi inicijalizacijsku datoteku

uključi("site_init.tpl");

// Ispis naslova

prikaži zaglavlje($site_name);

// Sadržaj tijela Ovo su neke informacije o tijelu

// Prikaz podnožja Show_footer();

Projekt: generator stranica

Iako je većina web stranica koje sam izradio generirala sadržaj glavne stranice na temelju informacija pročitanih iz baze podataka, uvijek postoji nekoliko stranica koje ostaju gotovo nepromijenjene. Konkretno, mogu prikazati informacije o razvojnom timu, podatke za kontakt, oglašavanje itd. Ja obično pohranjujem ove "statične" informacije u zasebnu mapu i koristim PHP skriptu da ih učitam kada stigne zahtjev. Naravno, imate pitanje - ako je ovo statična informacija, čemu služi PHP skripta? Zašto ne učitate obične HTML stranice? Prednost PHP-a je u tome što možete koristiti predloške i po potrebi umetati statične isječke.

<а href = "/static.php?content=$content">Statični naziv stranice

Započnimo stvaranjem statičnih stranica. Radi jednostavnosti, ograničit ću se na tri stranice koje sadrže informacije o web lokaciji (Ispis 9.12), oglašavanje (Ispis 9.13) i podatke za kontakt (Ispis 9.14).

Listing 9.12. Informacije o stranici (about.html)

O PHPRecipes

Koji programer ne miješa cjelovečernje programiranje s gurmanskim kolačićima, gotovo da ne prođe nijedna noć a da neki od naših programera ne pomiješaju malo HTML-a s ukusnim tanjurom Portobello Mushrooms najbolje od onoga što najviše volimo: PHP i hrana!

Tako je, čitatelji, skripte, soufflei i drugo. 0samo na PHPRecipes.

Informacije o oglašavanju

Bez obzira na to dolaze li naučiti najnovije PHP tehnike ili osvježiti kako

ispeći piletinu, možete se kladiti da naši čitatelji donose odluke. Oni su industrija

profesionalci koji donose odluke o tome što njihova tvrtka kupuje.

Za informacije o oglašavanju obratite se

">[e-mail zaštićen].

Listing 9.14. Kontakt detalji (contact.html)

Kontaktirajte nas

Imate li savjet za kodiranje?

Znate li koji je savršeni preljev za kandirani batat?

Javite nam! Kontaktirajte tim na [e-mail zaštićen].

Prijeđimo na izradu stranice static.php, koja prikazuje tražene statičke informacije. Ova datoteka (pogledajte Ispis 9.15) uključuje komponente stranice naše stranice i inicijalizacijsku datoteku site_init.tpl.

Listing 9.15. Opći izlaz statičnih stranica (static.php)

// Datoteka: static.php

// Svrha: prikazivanje traženih statičnih stranica.

// UPOZORENJE: ovo pretpostavlja da je datoteka "site_init.tpl" i to je to

// statičke datoteke su u istom direktoriju.

// Učitaj funkcije i varijable include("site_init.tpl"):

// Prikaz zaglavlja show_header($site_name);

// Izlaz traženog sadržaja include("$content.html"):

// Prikaz podnožja show footer();

Sada je sve spremno za izradu glavnog scenarija. Samo ga uključite na stranicu

<а href = "static.php?content=about">Statički naziv stranice

Informacije o oglašavanju

Kontaktirajte nas

Ako kliknete bilo koju od ovih poveznica, vaš preglednik će učitati odgovarajuću statičnu stranicu ugrađenu u static.php!

Rezultati

U ovom poglavlju ste se upoznali s primarnim zadatkom za koji je PHP stvoren - dinamičkom izgradnjom web stranica. Razmotrena su sljedeća pitanja:

  • URL obrada;
  • izgradnja dinamičkog sadržaja;
  • uključivanje i konstrukcija osnovnih predložaka.

Poglavlje završava generatorom stranica, programom koji učitava statične stranice u predložak i olakšava podržavanje velikog broja statičkih HTML stranica.

Sljedeće se poglavlje fokusira na korištenje PHP-a u kombinaciji s HTML obrascima kako bi se znatno poboljšala interaktivnost vaše stranice. A onda - interakcija s bazama podataka! Imate puno zanimljivih stvari za naučiti.

Iz prethodnih lekcija naučili smo da koristeći GET metodu možemo proslijediti neke parametre izravno na URL. Međutim, ništa nas ne sprječava da to učinimo bez obrazaca, samo ih navodeći u URL-u.

Parametre možemo proslijediti putem URL-a. A ove parametre možemo dobiti izravno u skripti. Dakle, što nas sprječava da korisniku prikažemo različite stranice ovisno o parametrima u URL-u?

Izrada dinamičke stranice

Da biste korisniku prikazali različite stranice, morate pripremiti sadržaj. Neka leži u višedimenzionalnom nizu:

"Izrada dinamičkih stranica", "sadržaj" => "Tekst članka o dinamičkim stranicama." ], [ "title" => "Kako uhvatiti mačića", "sadržaj" => "Tekst članka o mačićima." ] ]; ?>

Dinamički parametar u URL-u zvat će se id, a mi ćemo ga uhvatiti u $_GET["id"] . Mogli bismo dodati id polje svakom elementu niza, ali tada bismo morali iterirati kroz sve elemente i tražiti podniz sa željenim ID-om. Stoga je puno lakše koristiti ključeve glavnog niza kao ID-ove.

Jednostavno rečeno, uzimamo ID i pokušavamo pronaći članak s tim ključem u polju $articles. Ovako izgleda:

Sve što preostaje je skicirati izlaz izbornika i provjeriti ispravnost ID-a. Ispada da je pravi PHP usmjerivač!

"Home page", "content" => "Tekst članka o našim stranicama" ], [ "title" => "Izrada dinamičkih stranica", "content" => "Tekst članka o dinamičkim stranicama." ], [ "title" => "Kako uhvatiti mačića", "sadržaj" => "Tekst članka o mačićima." ] ]; # Ako je ID proslijeđen, zapišite članak u $article ili null ako ne postoji članak s tim ID-om if(isset($_GET["id"])) $current_article = $articles[$_GET["id"]] ?? ništavan; # Ako id nije proslijeđen, onda je ovo glavna stranica, možemo prikazati stranicu s id = 0 else $current_article = $articles; ?> $članak): ?> ">

Pogreška 404: Stranica nije pronađena

Sada možete stvarati dinamičke stranice gdje broj stranica ovisi o broju elemenata niza, a ne o PHP datotekama. :) Ako stranica treba imati različite vrste stranica, na primjer, članak i proizvod, možete proslijediti vrstu stranice kao drugi parametar: site.ru?type=article&id=5 .

Naravno, ovaj sustav nije savršen. Nakon nekog vremena naučit ćete kako napraviti normalan CNC (prikladniji URL-ovi, na primjer site.ru/articles/5/) i pohraniti članke u datoteku ili bazu podataka.

Da biste stvorili obećavajuću, proširivu i učinkovitu web stranicu bilo koje složenosti, trebali biste početi s nečim jednostavnim. Ovaj proces nije jednostavan, zahtijeva određena osnovna znanja o PHP-u i MySQL-u, ali ako ga razmotrite točku po točku, možete napraviti svojevrsni “plan rada” koji će vam biti od koristi pri izradi novih stranica. Pripremimo “jezgru” i bazu za projekt. U početku će to biti obična web stranica s posjetnicama, no onda se, dodavanjem funkcionalnosti, može pretvoriti u bilo što. Pa krenimo.

1. Priprema baze podataka. Napravite prvu tablicu u MySQL bazi podataka

Napravite novu bazu podataka, na primjer “mysite”. Osobno sam navikao raditi s UTF-8 kodiranjem, pa ću odmah rezervirati: provjerite jesu li sve tekstualne datoteke na web mjestu, sama baza podataka, tablice i polja tablice u istom kodiranju.
U novoj bazi podataka kreiramo tablicu. Nazovimo to "stranicama". Ova tablica će pohraniti statične stranice buduće stranice i podatke o njima. Tablica mora sadržavati sljedeća polja:

  • page_id - identifikator stranice (SMALLINT, primarni ključ, auto_increment);
  • page_alias - alias stranice za redak CNC adrese (VARCHAR, 255);
  • page_title - naslov stranice u prozoru preglednika (VARCHAR, 255);
  • page_meta_d - meta opis stranice za oznaku meta description (VARCHAR, 255);
  • page_meta_k - meta ključne riječi za oznaku meta keywords (VARCHAR, 255);
  • page_h1 - naslov stranice (VARCHAR, 255);
  • page_s_desc - kratak opis materijala, na primjer, ako će materijali stranice biti u obliku bloga (TEKST);
  • page_content - glavni tekst stranice, koji će biti prikazan u središnjem stupcu stranice (TEKST);
  • page_publish - sadrži "Y" - ako je stranica objavljena ili "N" - ako je skrivena (CHAR, zadano "Y").

Odmah nakon izrade tablice, u nju umetnemo vrijednosti za glavnu stranicu web mjesta. U polje "page_alias" za glavnu stranicu predlažem umetanje vrijednosti "home". Meta oznake odgovaraju temi cijele stranice. Na isti način možete kreirati druge stranice, na primjer, "O tvrtki" s pseudonimom "o" i vlastitim meta oznakama ili "Kontakti" s pseudonimom "kontakti", itd.

2. Napravite konfiguracijsku datoteku stranice

U korijenskoj mapi stranice, koja bi u ovoj fazi trebala biti prazna, kreiramo “cfg” mapu iu njoj pomoću .htaccess zatvaramo pristup direktivom “deny from all”. Napravite datoteku core.php sa sljedećim sadržajem:

// MYSQL
klasa MyDB
{
var $dblogin = "root"; // VAŠA PRIJAVA U BAZU PODATAKA
var $dbpass = ""; // VAŠA LOZINKA ZA BAZU PODATAKA
var $db = "mysite"; // NAZIV BAZE PODATAKA ZA STRANICU
var $dbhost="localhost";

Var $link;
var $upit;
var $err;
var $rezultat;
var $podataka;
var $fetch;

Funkcija connect() (
$this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query("POSTAVI IMENA utf8");
}

Funkcija close() (
mysql_close($this->link);
}

Funkcija run($query) (
$ovo->upit = $upit;
$this->result = mysql_query($this->query, $this->link);
$this->err = mysql_error();
}
funkcija red() (
$this->data = mysql_fetch_assoc($this->result);
}
funkcija fetch() (
dok ($this->data = mysql_fetch_assoc($this->result)) (
$this->fetch = $this->data;
return $this->fetch;
}
}
funkcija stop() (
poništi($ovo->podaci);
poništi($ovo->rezultat);
poništi($ovo->dohvati);
poništi($ovo->pogreška);
poništi($ovo->upit);
}
}

Ova datoteka trenutačno sadrži samo jednostavnu klasu veze s bazom podataka, ali u budućnosti joj možete dodati razne korisne funkcije koje će biti dostupne s bilo kojeg mjesta u kodu stranice. Ne zaboravite promijeniti prijavu i lozinku za svoju bazu podataka.

Ako radite u Windows okruženju, mogu preporučiti korištenje . Ovaj uređivač ima numeriranje redaka i lako pretvara tekst iz jednog kodiranja u drugo. PAŽNJA! Ako radite u UTF-8 kodiranju, pretvorite datoteke u UTF-8 bez BOM-a - to će pomoći u izbjegavanju problema u budućnosti.

3. Napravite index.php - glavni kontroler stranice

Konfiguracijska datoteka je stvorena. Sada u korijenskoj mapi web mjesta stvaramo index.php - to će biti glavna skripta web mjesta, neka vrsta "glavnog kontrolera". Sadržaj datoteke index.php:

definiraj("INDEX", ""); // POSTAVLJANJE KONSTANTE GLAVNOG REGULATORA

Require_once($_SERVER."/cfg/core.php"); // POVEZIVANJE JEZGRE

// POVEZIVANJE NA DB
$db = nova MyDB();
$db->poveži();

// GLAVNI KONTROLER
prebaciti ($_GET) (
slučaj "stranica":
uključi($_SERVER."/com/stranica.php");
pauza;
zadano:
uključi($_SERVER."/com/home.php");
pauza;
}

Uključi($_SERVER."/template.php");
$db->zatvori();

Varijabla $_GET reći će glavnom kontroleru koju komponentu stranice treba učitati kada se to zatraži. Trenutno naša stranica ima samo dvije komponente: “stranica” i “glavna stranica” (u principu, možete se snaći s jednom komponentom za prikaz obične stranice, ali često se izgled glavne stranice stranice razlikuje od regularnih stranica sa stavkama izbornika) . Logika glavnog kontrolera je sljedeća: naziv tražene komponente izdvaja se iz niza URL-a (vrijednost varijable $option), a ovisno o njenoj vrijednosti uključuje se datoteka same komponente (koja se nalazi u /com mapa). Komponentna datoteka obavlja sav potreban posao, izvlači podatke iz baze podataka i zapisuje ih u varijable za prijenos u predložak dizajna. Na samom kraju povezuje se datoteka dizajna stranice u koju se prenose sve varijable i podaci ekstrahirani u komponentama. Ovo zvuči puno kompliciranije nego što funkcionira.

4. Napravite regularnu komponentu ispisa stranice

U korijenu web-mjesta stvorite mapu "com" - komponente komponenti bit će pohranjene u njoj. Komponenta stranice, prema mom razumijevanju, je datoteka u kojoj se obrađuju podaci za različite dijelove stranice. Na primjer, obična komponenta stranice dohvaća naslov, opis i tekst materijala iz baze podataka i zapisuje ih u varijable $title, $meta_d, $meta_k, $content itd. Ti se podaci zatim prenose u predložak dizajna ( možete izraditi vlastiti predložak dizajna za svaku komponentu) i korisniku se prikazuju kao HTML stranica. Primjerice, kataloška komponenta koja bi se mogla izraditi u budućnosti radila bi gotovo istu stvar, ali s podacima o proizvodima - i ima svoje specifičnosti, druga polja u tablici itd. Stoga je za svaki funkcionalni dio web mjesta vrijedno stvoriti zasebnu komponentu. U shemi MVC (Model-View-Controller), komponenta djeluje kao model.

Napravite datoteku “page.php” u mapi “com”. Sadržaj datoteke je sljedeći:

/* KOMPONENTA STRANICE */
$alias = $_GET;
$query = "SELECT * FROM pages WHERE page_alias="".$alias."" AND page_publish="Y" LIMIT 1";
$db->pokreni($upit);
$db->row();
// KOMPONENTNE VARIJABLE
$id = $db->podaci;
$alias = $db->podaci;
$naslov = $db->podaci;
$h1 = $db->podaci;
$meta_d = $db->podaci;
$meta_k = $db->podaci;
$s_desc = $db->podaci;
$component = $db->podaci;
//AKO STRANICA NE POSTOJI
ako (!$id) (
zaglavlje ("HTTP/1.1 404 nije pronađen");
$component = "GREŠKA 404! Ova stranica ne postoji";
}
$db->stop();

5. Napravite komponentu prikaza glavne stranice

Glavna stranica u našoj bazi podataka pohranjena je pod pseudonimom "dom" i do sada se njezina struktura ne razlikuje od običnih stranica stranice - to je samo članak. Ipak, napravit ćemo zasebnu komponentu za to - za budućnost, da tako kažem.


Sadržaj komponente "home.php" u mapi "com" gotovo je identičan sadržaju obične komponente stranice, s izuzetkom niza upita baze podataka i naziva komponente. Niz upita sada izgleda ovako:

$query = "SELECT * FROM wx_pages WHERE page_alias="home" LIMIT 1";

6. Napravite predložak dizajna za cijelu stranicu

U korijenu stranice kreiramo datoteku template.php. U biti, radi se o uobičajenom web dizajnu u HTML+CSS formatu, samo s PHP varijablama na pravim mjestima. Umetni između oznaka naslova, u središnjem stupcu stranice nalazi se umetaki tako kroz predložak postavljamo potrebne varijable koje su deklarirane u komponentama.

Korijenska mapa također treba imati mape "css" i "images" za elemente dizajna. U datoteci /css/style.css - možete prilagoditi stilove prema vlastitom nahođenju.

7. Očistite poveznice i .htaccess datoteku

Za stvaranje čistih veza koristim mod_rewrite s izravnim uputama za pravila za svaku komponentu zasebno, jer smatram da je analiziranje adresne trake pomoću samog kontrolera nepotrebna funkcija. Sadržaj .htaccess u ovoj fazi je:


RewriteEngine uključen
RewriteBase /

RewriteCond %(REQUEST_FILENAME) !-d
RewriteCond %(REQUEST_FILENAME) !-f

# ZABRANJENE DATOTEKE
RewriteRule .htaccess - [F]
RewriteRule template.php - [F]

# PRAVILA mod_rewrite
RewriteRule page/(+)([\/](0,1))\.htm$ index.php?option=page&alias=$1 [L]

U budućnosti ćemo dodati pravila za komponente pretraživanja, katalog, blog članaka itd. Postoji samo jedna stvar: pretvorite veze poput “mysite.com/index.php?option=pages&alias=about” u vezu poput “mysite.com/pages/about.htm” - izgleda prilično lijepo. Pokušajte izbjeći niz $_GET u razvoju iz sigurnosnih razloga i nemojte se oslanjati na njega. Preporučljivo je u njega pohraniti samo parametre za glavni kontroler (varijabla $option) i za komponentu (varijabla $alias).

Također, u svakoj mapi web-mjesta, "za svaki slučaj", stvorite praznu datoteku index.html - to je potrebno tako da se prilikom pristupa direktoriju putem adresne trake ništa ne prikazuje.

Oznake: php, mysql, motor stranice, kontroler, izrada stranice, mvc

2017-01-10


Napravite dinamičnu web stranicu koristeći php

Pozdrav dragi posjetitelju!

Danas ćemo od glavne stranice programskim jezikom PHP izraditi dinamičku stranicu koja će se naknadno generirati na serveru sa svakim zahtjevom korisnika.

Dakle, promjenom strukture stranice i ispunjavanjem sličnim promjenjivim stranicama, dobit ćemo dinamičnu stranicu, koja će u budućnosti uvelike pojednostaviti njenu tehničku podršku i razvoj u odnosu na statičnu verziju.

  • Zašto vam je potrebna dinamična web stranica?
  • Kako statičnu stranicu pretvoriti u dinamičku
  • Formiramo blokove dinamičke stranice
  • Pretvaranje web stranice iz statične u dinamičku
  • Izvorne datoteke web mjesta

Zašto vam je potrebna dinamična web stranica?

Zašto je potrebna dinamička web stranica bilo je riječi na samom početku korak-po-korak uputa u članku Instalacija lokalnog Denwer web poslužitelja, gdje je objašnjena potreba za instalacijom lokalnog web poslužitelja. Stoga se možemo vratiti i osvježiti ovo pitanje.

Također, ako želite dodatno razmotriti prednosti i nedostatke statičnih i dinamičkih web stranica, možemo vam savjetovati da pročitate stranice internetskog imenika "Puzzleweb.ru" s odjeljkom Vrste web stranica, gdje prilično sažeto, ali u isto vrijeme vrijeme jasno danih objašnjenja za različite opcije mjesta.

snimak zaslona 12

Ovome možemo samo dodati da je nemoguće preskočiti ovaj korak i ostati na opciji statične web stranice kako biste dobili istinski punopravni internetski resurs.

Stoga se više nećemo upuštati u teorijske rasprave o potrebi stvaranja dinamičke stranice, već ćemo prijeći na pitanje kako ćemo to učiniti.

Kako statičnu stranicu pretvoriti u dinamičku

Kao što znate, temeljna razlika između dinamičke i statične stranice je u tome što kod statične stranice gotove web stranice leže na poslužitelju i čekaju svoj red da budu poslane korisnikovom pregledniku. Štoviše, ako stranice imaju čak i manje razlike, recimo razlika je samo u jednoj frazi ili čak u jednoj riječi, tada će to i dalje biti zasebne stranice.

U dinamičkoj verziji, formiranje stranica se događa na poslužitelju sa svakim zahtjevom korisnika, ovisno o traženim informacijama.

Jednostavno rečeno, to se može usporediti s konstrukcijskim setom, gdje se od ograničenog broja elemenata može napraviti veliki broj različitih oblika. Štoviše, ako napravite bilo kakvu promjenu na jednom od elemenata, to će se odraziti na cijelu strukturu koja uključuje taj element.

Na temelju toga ćemo od naše kreirane glavne stranice napraviti nešto poput konstruktora, koji se sastoji od određenih elemenata (u našem slučaju to će biti datoteke), od kojih će se naknadno sastavljati web stranice prema zahtjevima korisnika.

Da bismo objasnili radnje koje ćemo za to izvesti, koristit ćemo HTML kod okvira glavne stranice dobiven u jednoj od faza izrade web mjesta u članku.

  1. "utf-8" >

    <span><b>Naslov stranice</b> </span>

    "Opis" sadržaj = "Kratak opis sadržaja stranice" >

  2. "omot" >

    Policajac

    Rotator

    Glavni sadržaj

    Bočna traka

    Podrum

Kao što možete vidjeti iz HTML koda, spremnik , dizajniran za prilagodbu vidljivog dijela web stranice, sadrži sljedeće glavne blokove:

  • Policajac;
  • Rotator;
  • Glavni sadržaj;
  • bočna traka;
  • Podrum.

Međutim, morate obratiti pozornost na činjenicu da su četiri od pet blokova zajednička, a samo jedan blok "Glavni sadržaj" bit će različit za svaku stranicu.

Da bismo dobili elemente dinamičke stranice, sadržaj iz tih blokova odvojit ćemo u zasebne datoteke koje ćemo kasnije uključiti prilikom sastavljanja raznih web stranica prema zahtjevima korisnika.

Sada, u ovoj fazi bit će samo pet ovih datoteka. Ali u budućnosti, kada se web-mjestu dodaju stranice ili dodatne funkcije, povezivat će se nove datoteke i tako dalje, prema potrebi.

Ova konstrukcija strukture web stranice omogućit će vam da se ne morate baviti rutinskim radom mijenjanja HTML koda svih stranica u slučaju zamjene ili dodavanja bilo kojeg fragmenta koji im je zajednički. U takvim slučajevima bit će dovoljno unijeti izmjene samo u određenu datoteku i cijeli postupak zamjene bit će završen. Kao što vidite, postoji prednost.

No, da bismo to učinili, trebat će nam PHP jezik, uz pomoć kojeg će web stranice moći pristupiti tim odabranim blokovima i prenijeti njihov sadržaj na sebe.

Ako netko nikada nije imao posla s PHP jezikom, onda je preporučljivo da ga bolje upozna, budući da je PHP jedan od najvažnijih alata za razvoj web stranica. To se može učiniti korištenjem raznih vrsta referentne literature, koja se može naći u velikim količinama na ruskom Internetu.

Kao opcija, već spomenuta referentna knjiga "Puzzleweb.ru", u kojoj je jedan od njegovih dijelova posvećen temi PHP-a. Za dublje proučavanje PHP-a, također možete koristiti specijaliziranu referentnu knjigu prilagođenu posebno za ovaj jezik, objavljenu na web stranici "php.ru". Pomoću veze "https://php.ru/manual/control-structures.intro.html" možete doći do njegove stranice "Uvod", odakle možete jednostavno odabrati bilo koji odjeljak direktorija koji vas zanima.

No, da bi se sada napravila dinamična web stranica i omogućila mogućnost povezivanja datoteka s HTML stranicama, dovoljno je koristiti samo jednu jezičnu instrukciju (u PHP-u se svaka skripta sastoji od niza instrukcija). Ovo može biti jedna od četiri moguće upute za povezivanje datoteka:

  • uključiti;
  • zahtijevati;
  • uključi_jednom;
  • zahtijevati_jednom.

Ovdje nema smisla opisivati ​​njihove značajke, jer je to detaljno objašnjeno u referentnim knjigama, na primjer, koristeći vezu “http://www.puzzleweb.ru/php/26_inc_files.php” to možete dobro razumjeti.

Prilikom izrade stranice koristit ćemo instrukciju "require_once", ja obično koristim ovu opciju, za mene je to najprikladnije.

Pa, sada kada smo shvatili što ćemo učiniti, prijeđimo na praktične radnje.

Formiramo blokove dinamičke stranice

Da biste formirali blokove koji će potom sudjelovati u sklapanju web stranica, prvo ih morate izraditi. To se radi u uređivaču teksta Notepad++ na isti način kao što smo kreirali prvu datoteku web stranice "index.html" u članku Napravite web stranicu i smjestite je na lokalnom web poslužitelju. Samo u ovom slučaju ekstenziju treba navesti ne "html", već "php". U tom slučaju svakako morate obratiti pozornost na kodiranje kako biste u budućnosti izbjegli pojavu raznih vrsta nerazumljivih znakova na stranicama.

Datoteke ćemo stvoriti u zasebnoj, novostvorenoj mapi "blokovi". Datotekama koje su zajedničke svim stranicama dodijelit ćemo imena uzimajući u obzir nazive odgovarajućih blokova. A za "glavni" blok navest ćemo određeni naziv za svaku stranicu web mjesta.

Stoga ćemo za glavnu stranicu povezati datoteku pod nazivom "block_glavnaya" s "glavnim" blokom. Za ostalo: "header", "section", "aside" i "footer".

Prilikom stvaranja datoteka također možete uzeti u obzir da ih za pojednostavljenje ovog postupka možete kopirati pomoću izbornika "Datoteka", navodeći novi naziv datoteke prilikom spremanja "Spremi kao".

Općenito, stvaranje datoteka je standardni postupak, tako da ne bi trebalo biti nikakvih poteškoća. Na kraju bi to trebalo izgledati ovako.


Zatim kopiramo sadržaj svakog bloka i prenosimo ga u odgovarajuću datoteku. Koristeći "header.php" kao primjer, pogledajmo ovo detaljnije.

1. Otvorite datoteku “index.html” u uređivaču Notepad++, odaberite željeno područje bloka “header” i naizmjenično kliknite desnu i lijevu tipku miša i kopirajte je u međuspremnik.

Treba napomenuti da ovdje kopiramo sav sadržaj bloka s izuzetkom izbornika. To je zato što odražava aktivni gumb izbornika u atributima oznake

  • potrebno je za svaku stranicu dodijeliti vrijednost klase class "aktivan". Isto vrijedi i za sličan fragment u bloku "footer".

    U budućnosti ćemo također premjestiti ove fragmente izbornika u blokove "zaglavlje" i "podnožje" u zasebne datoteke, ali za sada nećemo komplicirati stvari i ostaviti ih na istom mjestu.

    Kako odabrati i kopirati fragment bloka "zaglavlja" u međuspremnik prikazano je na snimci zaslona u nastavku.



    3. I na kraju, da biste pomaknuli sadržaj datoteke u Notepad++ ulijevo, morate nekoliko puta pritisnuti “Tab” dok držite pritisnutu tipku “Shift”. Kao rezultat, dobit ćemo generiranu datoteku "header.php" u sljedećem obliku.


    Isto ćemo učiniti i za ostale datoteke. U nastavku, snimke zaslona pokazuju kako će njihov sadržaj izgledati nakon što se dovrše svi potrebni koraci.


    Sl.6 Datoteka "section.php"


    Sl.7 Datoteka "block_glavnaya.php"


    Slika 8 Datoteka "aside.php"


    Sl.9 Datoteka "footer.php"

    Dakle, dobili smo sve datoteke za izradu dinamičke stranice i sada možemo ići izravno na njen HTML kod.

    Pretvaranje web stranice iz statične u dinamičku

    Kako bismo osigurali da naša glavna stranica učitava datoteke koje su stvorene u prethodnom odjeljku, prvo moramo promijeniti ekstenziju datoteke "index" iz "html" u "php", a zatim je ponovno otvoriti u uređivaču Notepad++ i napraviti sljedeće promjene:

    • Brisanje sadržaja blokova koji su prethodno preneseni u novostvorene datoteke.
    • U slobodnom prostoru napišite upute “require_once” u PHP-u, navodeći put do odgovarajućih datoteka.
    • U oznakama izbornika
    • , koji označavaju put do stranica, za glavnu stranicu zamijenite ekstenziju iz “html” u “php”, a za ostale označavaju nazive novostvorenih stranica.
    • U naslovu označite "Dom".

    Nakon dovršetka ovih operacija, naša bi glavna stranica trebala izgledati ovako.


    Na gornjoj snimci zaslona možete vidjeti da su sve PHP upute istaknute s početnom oznakom. Ova se oznaka koristi za označavanje kada započeti i zaustaviti obradu koda napisanog u PHP-u. Stoga će ubuduće svi PHP kodovi biti istaknuti ovom oznakom.

    Također možete primijetiti da su nazivi novih stranica izrađeni uzimajući u obzir njihovu namjenu, tako da se struktura i kod stranice bolje percipiraju.

    Tu su sve naše transformacije završile. I sada, ako ponovno otvorimo glavnu stranicu u pregledniku, ne bismo trebali vidjeti nikakve promjene u odnosu na prethodnu verziju stranice, trebala bi se otvoriti isto kao prije. Ali, ako se pokaže da rezultat nije u redu, trebate potražiti pogrešku u gornjim operacijama.

    Sada ažurirajmo preglednik i pokušajmo otvoriti glavnu stranicu.


    Kao što vidite, u našem slučaju glavna stranica se otvorila bez problema. No, za razliku od prethodnog rada stranice, stranica je dobila ovaj izgled kao rezultat formiranja na poslužitelju prilikom obrade zahtjeva.

    Tako naša stranica sada ima svoju prvu dinamičku stranicu. A nakon dodavanja drugih sličnih stranica, ova stranica se s pravom može nazvati dinamičnom sa svim posljedicama, tj. imat će sve prednosti svojstvene dinamičkim stranicama. A to ćemo moći provjeriti kada ga u budućnosti ispunimo raznim vrstama funkcionalnosti.

    Ovime ćemo završiti ovu važnu fazu razvoja web stranice, au sljedećem ćemo članku izraditi nove dinamičke stranice za nju. Izvorni kodovi za najnoviju verziju stranice mogu se preuzeti, kao i obično, s poveznice na kraju članka.

    Izvorne datoteke web mjesta

    Izvorne datoteke stranice s ažuriranjima koja su napravljena u ovom članku mogu se preuzeti iz privitka dodatni materijali.