Povezovanje datotek tretjih oseb v PHP. Povezovanje zunanjih datotek Connect php stran

Danes vam bom povedal, kako se vzpostavi povezava različne vrste skripte za vaše spletno mesto. To so nekakšne osnove in ta članek bi moral napisati med prvimi. Zato začnimo.

Povezovanje JS skript (datoteke s končnico *.js) na stran

JavaScript nam pomaga izboljšati funkcionalnost spletnega mesta na več načinov. Naj bo to stilizacija oblik ali npr tehnična stran vprašanje.

JavaScript je mogoče povezati na dva načina:

1. najprej– to je neposredno vstavljanje kode na vaše spletno mesto z uporabo oznak:

Koda

2. drugič– z uporabo datoteke:

Kjer je »https://www.pandoge.com/main.js« pot do skriptne datoteke. Priporočljivo je, da to možnost napišete za datoteke na oddaljenem (zunanjem) strežniku. Če se datoteka nahaja na vašem spletnem mestu, lahko preprosto določite relativno pot:

To je priročno, če nenadoma želite spremeniti domeno ali prenesti spletno mesto na drug protokol.

Kar zadeva lokacijo povezave, je priporočljivo povezati vse skripte v razdelku HEAD, pred njegovo zaključno oznako. Na primer:

Vse za spletnega skrbnika začetnika

Lahko jih povežemo tudi v razdelek BODY. Na primer, priporočljivo je, da vse knjižnice vključite v razdelek HEAD, medtem ko so vse števce, drsnike, galerije in druge skripte vključene v razdelek BODY, tudi pred zaključno oznako.

Povezovanje PHP skript (datoteke s končnico *.php) na stran

Povezovanje PHP skriptov poteka na tri načine:

1. najprej– to je enako vstavljanje kode na samo stran spletnega mesta (upoštevajte, da če imate stran s končnico *.html, morate končnico spremeniti v *.php) z uporabo oznak:

2. Z uporabo datoteke (v tem primeru je povezava možna tudi na strani s končnico *.html):

Da pa bo ta metoda delovala, morate dodati te vrstice v datoteko .htaccess, ki se nahaja v korenu vašega spletnega mesta, na samem vrhu:

RemoveHandler .html .htm AddType application/x-httpd-php .php .htm .html .phtml

Če taka datoteka ni na voljo na vašem gostovanju, jo ustvarite s katerim koli urejevalnikom besedil.

3. Tretjič– z uporabo skripta JS. V tem primeru lahko na strežniku dobite tudi rezultat izvedenega PHP skripta.

Izvedba bo naslednja:

$(document).ready(function() ( $(".result").load("/main.php"); ));

Pri čemer je ».result« razred, v katerega bodo naloženi podatki, »/main.php« pa je naslov skripta PHP.

Če nalagate podatke z drugega strežnika, potem PHP podpora ni potreben na vašem strežniku. Ne pozabite povezati knjižnice jQuery s svojim spletnim mestom.

Tukaj so pravila popolnoma enaka: polni naslov datoteke, če se nahaja na zunanji strežnik, relativno – če na tvojem.

Pozor!

Če želite na svoje spletno mesto povezati skript PHP, mora imeti strežnik podporo za PHP. Pri svojem ponudniku gostovanja preverite, ali imate to možnost. Če skripte povezujete prvič, poskusite povezati skripte iz arhiva, ki je priložen na koncu članka. Če ste v obeh primerih prejeli sporočilo " Pozdravljen svet

! " pomeni, da si naredil vse prav.

PHP ima možnost vključitve datotek s kodo v druge datoteke. To se naredi za izgradnjo arhitekture aplikacije. Arhitektura programsko opremo (eng. software architecture) - skupek najpomembnejših odločitev o organizaciji programski sistem

  • . Arhitektura vključuje:
  • izbira strukturnih elementov in njihovih vmesnikov, s katerimi je sestavljen sistem, ter njihovo obnašanje v okviru sodelovanja strukturnih elementov;
  • povezovanje izbranih elementov strukture in obnašanja v vse večje sisteme;

arhitekturni slog, ki usmerja celotno organizacijo – vse elemente, njihove vmesnike, njihovo sodelovanje in njihovo povezovanje. To pomeni, da moramo svojo kodo razdeliti na ločene dele, od katerih bo vsak opravljal svojo vlogo. Nekatere funkcije lahko na primer premaknete v ločena datoteka

, povežite to datoteko znotraj druge in jih uporabite že v tej datoteki.

Bistvo arhitekture je, da so programske komponente, ki so odgovorne za nekatera podobna vedenja, na enem mestu in jih je mogoče enostavno najti in spremeniti. No, na splošno uporabimo primer. Toda najprej preučimo eno "čarobno" konstanto. Govorimo o stalnici __DIR__

. Vsebuje pot do imenika, v katerem se nahaja trenutni skript (skript, v katerem je bila ta konstanta uporabljena). Zapišimo ga v naš index.php

naslednjo kodo:
Soda in liha števila Število 2
številka 5

številka 8

Upam, da ni kdo pozabil, da lahko kodo PHP vstavite neposredno v HTML? O tem smo govorili v. Samo tam smo za izpis uporabili takšno konstrukcijo:

Če moramo v vstavku prikazati samo rezultat nekega izraza, ga lahko poenostavimo na:

Naša aplikacija je uspešno delovala in koda glavne strani ne vsebuje pomožnih funkcij - uporabljajo se z direktivo vključujejo povezan z našo datoteko. Podrobneje - PHP koda iz datoteke functions.php je bil vstavljen, kjer je bil povezan z uporabo direktive vključujejo.

Razlika med zahtevati in vključiti

Obstaja še ena direktiva za povezovanje datotek - zahtevati. Če zdaj zamenjate vključujejo na zahtevati, takole:

Zahtevaj __DIR__. "/functions.php";

potem se v bistvu nič ne spremeni - koda bo delovala popolnoma enako.

Vendar je med njima še vedno razlika. Leži v tem, da če vključena datoteka ni najdena, potem kdaj vključujejo bo nastal opozorilo, vendar se bo program še naprej izvajal. In če konektorja ni, ko poskušate izvesti zahtevati, potem bo prišlo do usodne napake in skript se bo prekinil.

Ponovno vrnimo direktivo vključujejo, preimenujmo functions.php V abc.php in poskusite posodobiti stran.

Prejeli smo napake različnih vrst. Prvi je opozorilo, kar pomeni, da je datoteka functions.php ni najden. Toda skript se je še naprej izvajal in se nato zrušil v vrstici 10, ker funkcija ni bila najdena jeEven(), in to je že usodna napaka.
Zdaj pa zamenjajmo vključujejo na zahtevati in ponovno posodobite stran.

Zdaj imamo usodna napaka takoj v drugi vrstici je aplikacija na tej točki zaključila svoje delo.

To je zahtevati je treba uporabiti, kjer je potrebna vključitev datoteke. Na primer datoteka s konfiguracijo ali potrebnimi funkcijami.

A vključujejo se lahko uporablja za datoteke, za katere ni nujno, da so vključene (če se lahko koda še naprej izvaja brez njih). Primer: kodna datoteka banner oglaševanje. Da, oglaševanje se ne bo pojavilo, vendar bo spletno mesto še naprej delovalo.

Kako drugače lahko uporabite zahtevati in vključiti

Poleg tega, da lahko vključite datoteke s kodo PHP, lahko vključite tudi datoteke, ki vsebujejo nekaj besedila ali zlasti kodo HTML.

Predlagam, da razmislite o naslednji situaciji: na našem spletnem mestu imamo vedno isto glavo, stransko vrstico in nogo, vendar se spremenita naslov in vsebina strani. Recimo, da je naše spletno mesto videti takole:

Z zeleno sem označil del strani, ki se bo spremenil.

Najprej ustvarimo našo predlogo. Upam, da so vsi opravili. Dobil sem to kodo:

Naslov strani

GLAVA
VSEBINA
NOGA

Takole je izpadla moja spletna stran:

Zdaj razdelimo to kodo na komponente. Ustvarimo 4 datoteke: header.php z glavo datoteke, sidebar.php s stranskim stolpcem, content.php z glavno vsebino strani in footer.php za nogo spletnega mesta.

Tabela glave strani, td (obroba: polna črna 1px; border-collapse: collapse; ) #layout (širina: 800px; margin: auto;) #layout td (padding: 20px;) #sidebar (širina: 300px)

GLAVA
VSEBINA
NOGA

Zdaj pa se vrnimo na index.php in vanj vpišimo naslednjo kodo:

Ponovno osvežimo stran:

ta-da! Naša stran se je oblikovala dinamično! Ne samo, da je bil sestavljen iz različnih komponent, ampak tudi izpeljuje vrednosti iz spremenljivk.

direktivi require_once in include_once

Včasih morate datoteko povezati samo enkrat. Na primer, da samo enkrat vključite datoteko s funkcijami. Za to se uporabljajo direktive zahtevaj_enkrat in vključi_enkrat.

Ustvarimo datoteko config.php in vanj zapišite naslednjo vsebino:

Zdaj pa ustvarimo drugo datoteko (na primer "b.php") in vanjo vključimo skript "a.php":

Kot ste uganili, je povezovanje datoteke tretje osebe v PHP izvedeno s konstrukcijo zahtevaj. Povedano preprosto v preprostem jeziku, potem ta konstrukcija preprosto prekopira vso kodo iz "a.php" in jo prilepi v "b.php". Zelo pomemben odtenek: pot do datoteke mora biti pravilno zapisana in poskusite napisati relativno pot, ne absolutne, saj je pisanje absolutnih poti v konstrukciji zahtevanja pogosto onemogočeno v nastavitvah PHP iz varnostnih razlogov. Prav tako lahko povežete ne samo datoteke PHP, ampak tudi vse druge. Pogosto so na primer vključene datoteke HTML. Nekoč, ko sem delal eno spletno stran, sem, da ne bi kopiral določenih ponavljajočih se stvari (na primer meniji, števci, avtorske pravice itd.), njihovo HTML kodo stlačil v posebno datoteko. In potem sem na vsako stran preprosto vključil te datoteke. Posledično sem moral za spremembo na primer menija popraviti samo eno vključeno datoteko in takoj zatem je bilo preoblikovano celotno spletno mesto. Ta oblika je torej izjemno uporabna in prihrani vsaj veliko časa.

Vendar zelo pomembna točka. Kako se izogniti tej težavi: recimo, da dva razvijalca naredita enega velik program. Prvi razvijalec je našel že pripravljeno možnost za izvedbo dela svoje naloge in jo povezal z uporabo require. Tudi drugi razvijalec je našel popolnoma enako pripravljeno rešitev za svojo nalogo in vključil tudi skript z uporabo require. Potem, ko oba razvijalca sestavita svoje dele, se bodo pojavile napake. Zakaj? In vse zato, ker so dvakrat povezali isti scenarij. Poglejmo preprost primer:

Če zaženete ta skript, boste ugotovili, da je bila datoteka "a.php" vključena dvakrat, vendar smo jo poklicali samo enkrat. Zakaj se je to zgodilo? Ampak zato, ker je vključen tudi v datoteko "b.php". To je problem. In to je mogoče rešiti zelo preprosto: z uporabo konstrukcije require_once. Vse naredi enako, vendar če je datoteka že vključena v ta skript, je ne bo povezal. Popravimo datoteko "b.php":

Zdaj, če zaženemo skript "c.php", bomo videli, da se datoteka "a.php" po pričakovanjih zažene samo enkrat. Osebno vam svetujem, da vedno uporabite konstrukt require_once, razen če seveda morate isto stvar vstaviti večkrat (tudi to je včasih potrebno). Tako se boste izognili nepotrebnim napakam.

In na koncu bi rad spregovoril o še dveh podobnih konstrukcijah, s pomočjo katerih lahko v PHP vključite tudi datoteke tretjih oseb - to sta include in include_once. Popolnoma so podobni zgoraj obravnavanim, vendar obstaja ena majhna razlika. Če v primeru konstruktov require in require_once vključena datoteka ni najdena, bo izvajanje skripta prekinjeno. Ko uporabljate include ali include_once, se preprosto prikaže opozorilo in skript se bo še naprej izvajal. To je vsa razlika. Svetujem vam celo, da preverite in se prepričate sami.

Če želite, da bo vaša koda bolj berljiva, lahko na primer postavite definicije funkcij in/ali razredov v ločeno datoteko. Možnost vključitve datotek v PHP zagotavljajo štiri jezikovna navodila:

  • vključujejo
  • zahtevati
  • vključi_enkrat
  • zahtevaj_enkrat

Vsa štiri navodila lahko sprejmejo ime kot parameter lokalna datoteka. Stavka vključi in zahteva sta si po delovanju zelo podobna in se razlikujeta le v odzivu na nezmožnost pridobitve zahtevanega vira. Na primer, če vir ni na voljo, vključite in include_once prikažeta opozorilo in poskusite nadaljevati izvajanje programa. require in require_once ustavita obdelavo strani, če zahtevani vir ni na voljo.

vključujejo

Stavek include vam omogoča, da svojemu skriptu PHP vključite in pripnete druge skripte. Ko se program zažene, bo tolmač preprosto zamenjal navodilo z vsebino vključene datoteke. Poglejmo, kako deluje, ustvarite datoteko z imenom add.php in vanjo zapišite:

Zdaj ustvarimo še eno datoteko in jo poimenujmo na primer test.php, v katero bomo vključili datoteko add.php:

Kot lahko vidite iz primera, stavek include doda vsebino vključene datoteke, zahvaljujoč kateri vaš program pridobi dostop do drugih spremenljivk, funkcij, razredov itd.

Opomba: vključenim datotekam lahko daste poljubna imena, vendar vedno dodajte končnico .php, ker lahko napadalci zahtevajo vašo datoteko, če uporabite drugo končnico, spletni strežnik pa bo vrnil njeno besedilo. To je varnostno tveganje, ker se lahko razkrijejo gesla ali način delovanja vašega programa, kar napadalcem omogoči stranska vrata. Da se to ne bi zgodilo, mora vključene datoteke obdelati tolmač PHP.

Povezava znotraj funkcije

Če pride do vključitve datoteke znotraj funkcije, se bo vsa koda, ki jo vsebuje vključena datoteka, obnašala, kot da bi bila definirana znotraj te funkcije, tj. koda bo imela lokalni obseg. Prepišimo prejšnji primer malo na novo:

Zdaj pa dodamo funkcijo v test.php:

Ker smo znotraj funkcije $var1 razglasili za globalno, postane na voljo tudi v globalnem obsegu.

Pot datoteke

Datoteke so vključene na podlagi podane poti do datoteke; če pot ni podana, bo uporabljena pot, podana v direktivi include_path (v konfiguracijski datoteki php.ini). Če datoteke ni mogoče najti na podani poti v include_path, bo stavek include poskušal preveriti trenutni delovni imenik, v katerem se nahaja skript, ki vključuje datoteko; če stavek include ne najde datoteke, bo izdano opozorilo.

Če je podana pot - ne glede na to, katera: absolutna ali relativna (glede na trenutni imenik, kjer se nahaja vključeni skript) - bo direktiva include_path prezrta.

vključi_enkrat

Vedenje include_once je enako kot stavek include, z edino razliko, da če je bila koda iz datoteke enkrat že vključena, ne bo ponovno vključena in izvedena. S tem se izognete težavam s preglasitvijo funkcij, spremenljivk itd. Da bi bolje razumeli, kako to deluje, je tukaj primer:

V test.php bomo poskusili izvesti naslednjo kodo:

To bo povzročilo sporočilo o napaki, ker funkcij ni mogoče preglasiti. Da bi se izognili tej vrsti napake, uporabite stavek include_once. Prepišimo kodo v datoteki test.php:

zahtevaj in zahtevaj_enkrat

Stavka require in require_once delujeta enako za include in include_once, razen ene razlike. Če vključene datoteke ni mogoče najti, bo izvajanje skripta ustavljeno, medtem ko bosta include in include_once izdala opozorilo in nadaljevala z izvajanjem skripta.

Nasvet: poskusite popolnoma opustiti uporabo vključitve in zahtevanja, uporabite njihove analoge s pripono _once. To bo olajšalo razdelitev velikega, kompleksnega programa na relativno neodvisne module.

21.01.2018

Ne še


Pozdravljeni vsi!
Nadaljujmo z učenjem osnov PHP iz nič!
V tej vadnici vam bom povedal, kako vključiti datoteko v php.
Zakaj morate vključiti datoteko v php?

Samo trenutek, zdaj boste izvedeli vse.
Se spomnite naše prejšnje lekcije št. 16, o kateri sem govoril?
Torej lahko ustvarite datoteko, na primer "function.php" in vanjo zapišete vse funkcije, ki jih boste morali uporabiti za spletno mesto. Vse, kar ostane, je povezati datoteko "function.php" na strani spletnega mesta in to je to. To je priročno in na glavni strani spletnega mesta ni kup nepotrebne kode.

Dal vam bom še en primer, kjer lahko uporabite povezavo zunanje datoteke php.
Na primer, imate spletno stran s 100 stranmi, ki je sestavljena iz glave, menija, vsebine in noge.
In nenadoma morate v meni dodati še en razdelek. Predstavljajte si: to zahteva odpiranje 100 datotek za popravek.

Vsemu temu pa se lahko izognete, če ustvarite ločeno datoteko, na primer »menu.php« in jo povežete s svojim spletnim mestom, kjer bi moral biti meni. In po tem, če naredite popravek samo v eni datoteki "menu.php", se bo zamenjava samodejno zgodila na preostalih 100 straneh spletnega mesta. Na ta način lahko povežete glavo, nogo spletnega mesta itd. Priročno, kajne?
Mislim, da bom na koncu tega članka s primerom pokazal, kako to organizirati.
Torej, za povezavo zunanjega php datoteke, obstajata dve glavni zasnovi vključitve: zahtevati in vključujejo .

Vključni konstrukt

Konstrukt include vam omogoča, da v kodo vključite datoteke PHP skript medtem ko se skript izvaja.

Sintaksa konstrukcije include je:

Če je v mapi:

Ustvarite datoteko “function.php” z naslednjo kodo:

Zdaj v datoteki "index.php" Poskusimo povezati datoteko "function.php" (vrstica št. 2):

rezultat:

Pozor: v nekaterih primerih lahko pozabite in znova poskusite vključiti datoteko “function.php” (vrstica št. 2, št. 3):

Posledično lahko pride do usodne napake ali pa se vsebina datoteke znova prikaže. V mojem primeru bo prišlo do napake:

Usodna napaka: Sreturn() (prej deklariran v O:\home\localhost\www\php\function.php:2) v O:\home\localhost\www\php\function.php v 5. vrstici ni mogoče znova deklarirati

Če odstranite samo funkcijo in napišete besedilo (datoteka “function.php”):

No, seveda, v datoteki “index.php” odstranite tudi izhod funkcije:

potem se bo rezultat preprosto ponovil.

pozdravljena pozdravljena

Če želite preprečiti takšne napake in preprečiti ponovno povezavo datoteke, morate namesto stavka »include« uporabiti stavek »include_once«.

konstrukti "include_once".

Sintaksa za konstrukcijo »include_once« je:

Primer (vrstica št. 2, št. 3):

Čeprav obstajata dve povezavi, bo datoteka povezana samo enkrat, kar pomeni, da bo povezava prezrta, ker je datoteka že povezana.

Konstrukt zahteva vključke

Konstrukcija zahteva vam omogoča, da datoteke vključite v skript PHP, preden se skript PHP izvede.

Sintaksa za konstrukcijo »require« je:

Če je v mapi:

Če v naši kodi naletimo na več stavkov zahteva, ki vključujejo isto datoteko, bo tolmač izdal napako. Da bi se izognili tej situaciji, morate uporabiti navodilo “require_once”:

konstrukcije "require_once".

Pozor: če vključite neobstoječo datoteko prek “include”, “include_once”, “require” ali “require_once”, bo rezultat napaka:

Opozorilo: include_once(function1.php) : ni uspelo odpreti toka: v O:\home\localhost\www\php\index.php v vrstici 2 ni take datoteke ali imenika

Zdaj vam bom, kot sem obljubil, pokazal, kako povezati meni, glavo in nogo spletnega mesta na spletnem mestu. Za primer bom vzel že pripravljeno spletno stran, tisto, ki sva jo naredila ti in jaz, ko sva študirala.

Razdelimo to spletno mesto na naslednje datoteke:

Torej, ustvarite mapo »Eksperiment« na (ali gostovanju). Na voljo bo novo spletno mesto za eksperimentiranje.

V mapi »Eksperiment« ustvarite drugo mapo z imenom »include«. Kot razumete, bo mapa »include« vsebovala povezovalne datoteke (»menu.php«, »heder.php« in »footer.php«).

Zdaj pojdite v mapo »include« in tam ustvarite datoteko »menu.php« z naslednjo kodo:

DOMOV O MENI STORITVE POVRATNE INFORMACIJE

Ustvarite drugo datoteko z imenom "heder.php" in prilepite to kodo:

spletna stran

Usposabljanje osnov HTML

Ustvarite drugo datoteko z imenom "footer.php" in prilepite to kodo:

spletno mesto © 2016

Zdaj zapustimo mapo »include« in ustvarimo glavno datoteko »index.ph p«
(opomba: ne "index. html«, in sicer »indeks. php") s to kodo:

DOMOV

Datoteke sem povezal v vrsticah št. 19, št. 32, št. 38.
Upoštevajte, da samo zaradi razumevanja prikazujem dele kode, ki so izpisani prek »include_once«, sicer lahko komentarje odstranite, koda bo krajša in datoteka lažja:

Vadite osnove HTML-ja za spletno stran

DOMOV

Tukaj bo besedilo za glavno stran

Zdaj podvojite to kodo za preostale datoteke »obo-mne.php«, »uslugi.php«, »obratnaja-svjaz.php«, pri čemer spremenite samo besedilo glave in samo vsebino.

To je vse, glejte in preverite.
Za popolno srečo (tako da so slike prikazane) ne pozabite ustvariti mape "image" s slikami.

Naročite se na posodobitve spletnega dnevnika, da ne boste zamudili okusnih lekcij o osnovah PHP.

Prejšnja objava
Naslednji vnos

Pregled