Povezivanje datoteka trećih strana u PHP-u. Povezivanje vanjskih datoteka Povežite php stranicu

Danas ću vam reći kako se uspostavlja veza različite vrste skripte za vaš sajt. Ovo su neke osnove, a ovaj članak sam trebao napisati jedan od prvih. Stoga, počnimo.

Povezivanje JS skripti (fajlova sa ekstenzijom *.js) na sajt

JavaScript nam pomaže da poboljšamo funkcionalnost stranice na mnogo načina. Bilo da se radi o stilizaciji formi ili, na primjer, nekima tehnička strana pitanje.

JavaScript se može povezati na dva načina:

1. Prvo– ovo je direktno umetanje koda u vašu web stranicu pomoću oznaka:

Kod

2. Drugo– koristeći fajl:

Gdje je “https://www.pandoge.com/main.js” put do datoteke skripte. Preporučljivo je napisati ovu opciju za datoteke na udaljenom (eksternom) serveru. Ako se datoteka nalazi na vašoj web lokaciji, možete jednostavno odrediti relativnu putanju:

Ovo je zgodno ako iznenada želite promijeniti domenu ili prenijeti stranicu na drugi protokol.

Što se tiče lokacije veze, preporučljivo je povezati sve skripte u HEAD sekciji, prije njegove završne oznake. na primjer:

Sve za webmastera početnika

Mogu se spojiti i u sekciji BODY. Na primjer, preporučljivo je uključiti sve biblioteke u odjeljak HEAD, dok su svi brojači, klizači, galerije i drugi skripti uključeni u odjeljak BODY, također prije završne oznake.

Povezivanje PHP skripti (fajlova sa ekstenzijom *.php) na sajt

Povezivanje PHP skripti se izvodi na tri načina:

1. Prvo– ovo je isto umetanje koda u samu stranicu stranice (imajte na umu da ako imate stranicu sa ekstenzijom *.html, morate promijeniti ekstenziju u *.php) pomoću oznaka:

2. Korištenje datoteke (u ovom slučaju, veza se može napraviti i na stranici sa *.html ekstenzijom):

Ali da bi ova metoda funkcionirala, trebate dodati ove redove u .htaccess datoteku, koja se nalazi u korijenu vaše web stranice, na samom vrhu:

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

Ako takva datoteka nije dostupna na vašem hostingu, kreirajte je pomoću bilo kojeg uređivača teksta.

3. Treće– korištenjem JS skripte. U ovom slučaju, takođe možete dobiti rezultat izvršene PHP skripte na serveru.

Implementacija će biti sljedeća:

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

Gdje je “.result” klasa u koju će podaci biti učitani, a “/main.php”, respektivno, je adresa PHP skripte.

Ako učitavate podatke sa drugog servera, onda PHP podrška nije potrebno na vašem serveru. Ne zaboravite da povežete jQuery biblioteku sa svojom web lokacijom.

Ovdje su pravila potpuno ista: puna adresa datoteke, ako se nalazi na eksterni server, rodbina – ako je na tvojoj.

Obratite pažnju!

Ako želite da povežete PHP skriptu sa svojom lokacijom, onda server mora imati PHP podršku. Provjerite sa svojim hosting provajderom da li imate ovu opciju. Ako prvi put povezujete skripte, pokušajte povezati skripte iz arhive koja je priložena na kraju članka. Ako ste u oba slučaja dobili poruku " Hello World

! "znači da si sve uradio kako treba.

PHP ima mogućnost uključivanja datoteka sa kodom unutar drugih datoteka. Ovo se radi kako bi se izgradila arhitektura aplikacije. Arhitektura softver (eng. softverska arhitektura) - skup najvažnijih odluka o organizaciji softverski sistem

  • . Arhitektura uključuje:
  • izbor konstruktivnih elemenata i njihovih interfejsa sa kojima je sistem sastavljen, kao i njihovo ponašanje u okviru saradnje konstruktivnih elemenata;
  • povezivanje odabranih elemenata strukture i ponašanja u sve veće sisteme;

arhitektonski stil koji vodi cijelu organizaciju - sve elemente, njihova sučelja, njihovu suradnju i njihovu povezanost. Odnosno, trebamo razbiti naš kod na zasebne dijelove, od kojih će svaki obavljati svoju ulogu. Na primjer, možete premjestiti neke funkcije u zaseban fajl

, povežite ovu datoteku unutar druge i koristite ih već u ovoj datoteci.

Poenta arhitekture je da su programske komponente odgovorne za neko slično ponašanje na jednom mjestu i da se lako mogu pronaći i promijeniti. Pa, općenito, upotrijebimo primjer. Ali prvo, hajde da ispitamo jednu "magičnu" konstantu. Govorimo o konstanti __DIR__

. Sadrži putanju do direktorija u kojem se nalazi trenutna skripta (skripta u kojoj je ova konstanta korištena). Hajde da to zapišemo u našoj index.php

sljedeći kod:
Parni i neparni brojevi broj 2
Broj 5

Broj 8

Nadam se da niko nije zaboravio da PHP kod možete umetnuti direktno u HTML? Razgovarali smo o ovome u. Samo tamo smo koristili ovakvu konstrukciju za izlaz:

Ako u insertu trebamo prikazati samo rezultat nekog izraza, onda se može pojednostaviti na:

Naša aplikacija je uspješno pokrenuta, a kod glavne stranice ne sadrži pomoćne funkcije - koriste se pomoću direktive uključiti povezan sa našim fajlom. Detaljnije - PHP kod iz datoteke functions.php je umetnuto tamo gdje je spojeno pomoću direktive uključiti.

Razlika između zahtjeva i uključivanja

Postoji još jedna direktiva za povezivanje fajlova - zahtijevaju. Ako sada zamijenite uključiti on zahtijevaju, ovako:

Zahtijeva __DIR__ . "/functions.php";

tada se ništa suštinski neće promeniti - kod će raditi potpuno isto.

Međutim, još uvijek postoji razlika između njih. Leži u činjenici da ako uključena datoteka nije pronađena, kada uključitiće nastati upozorenje, ali program će nastaviti da se izvršava. I ako konektor nije tu kada pokušate izvršiti zahtijevaju, tada će se dogoditi fatalna greška i skripta će se prekinuti.

Vratimo direktivu ponovo uključiti, preimenujmo functions.php V abc.php i pokušajte ažurirati stranicu.

Dobili smo greške raznih vrsta. Prvi od njih je upozorenje, što označava da je datoteka functions.php nije pronađeno. Ali skripta je nastavila da se izvršava, a zatim se srušila na liniji 10 jer funkcija nije pronađena isEven(), a ovo je već fatalna greška.
Zamenimo sada uključiti on zahtijevaju i ponovo ažurirajte stranicu.

Sada imamo fatalna greška odmah u drugom redu, aplikacija je završila svoj rad u ovom trenutku.

To je zahtijevaju treba koristiti tamo gdje je potrebno uključivanje datoteke. Na primjer, datoteka s konfiguracijom ili potrebnim funkcijama.

A uključiti može se koristiti za datoteke koje ne moraju nužno biti uključene (ako kod može nastaviti da radi bez njih). Primjer: datoteka koda baner oglašavanje. Da, oglašavanje se neće pojavljivati, ali stranica će nastaviti s radom.

Kako drugačije možete koristiti zahtijevati i uključiti

Pored činjenice da možete uključiti datoteke sa PHP kodom, možete uključiti i datoteke koje sadrže neki tekst, ili posebno HTML kod.

Predlažem da razmotrimo sljedeću situaciju: na našoj web stranici uvijek imamo isto zaglavlje, bočnu traku i podnožje, ali se naslov i sadržaj stranice mijenjaju. Recimo da naša stranica izgleda ovako:

Označio sam zelenom bojom dio stranice koji će se promijeniti.

Kreirajmo prvo naš predložak. Nadam se da su svi prošli. dobio sam ovaj kod:

Naslov stranice

HEADER
SADRŽAJ
FOOTER

Ovako je ispala moja web stranica:

Hajde da sada razbijemo ovaj kod na njegove komponente. Kreirajmo 4 fajla: header.php sa zaglavljem fajla, sidebar.php sa bočnom kolonom, content.php sa glavnim sadržajem stranice i footer.php za podnožje stranice.

Tablica zaglavlja stranice, td ( granica: puna crna 1px; border-collapse: kolaps; ) #layout ( širina: 800px; margina: auto; ) #layout td ( padding: 20px; ) #sidebar (širina: 300px )

HEADER
SADRŽAJ
FOOTER

Sada se vratimo na index.php i upišemo sljedeći kod u njega:

Ajmo sada ponovo osvježiti stranicu:

Ta-da! Naša stranica je formirana dinamično! Ne samo da je sastavljena od različitih komponenti, već i izvodi vrijednosti iz varijabli.

direktive require_once i include_once

Ponekad trebate samo jednom povezati datoteku. Na primjer, samo jednom uključiti datoteku s funkcijama. Za to se koriste direktive zahtijevaju_jednom I include_once.

Kreirajmo fajl config.php i u njega upišite sljedeći sadržaj:

Sada napravimo drugu datoteku (na primjer, "b.php") i uključimo skriptu "a.php" u nju:

Kao što ste pretpostavili, povezivanje datoteke treće strane u PHP-u se vrši pomoću konstrukcije require. Jednostavno rečeno jednostavnim jezikom, onda ova konstrukcija jednostavno kopira sav kod iz "a.php" i zalijepi ga u "b.php". Veoma važna nijansa: putanja do datoteke mora biti ispravno napisana i pokušajte da napišete relativnu putanju, a ne apsolutnu, pošto je pisanje apsolutnih putanja u konstruktu require često onemogućeno u PHP postavkama iz sigurnosnih razloga. Također možete povezati ne samo PHP datoteke, već i sve druge. Na primjer, HTML datoteke su često uključene. Svojevremeno, kada sam pravio jednu web stranicu, da ne bih kopirao određene stvari koje se ponavljaju (npr. menije, brojalice, autorska prava itd.), njihov HTML kod sam strpao u poseban fajl. I onda sam na svaku stranicu jednostavno uključio ove datoteke. Kao rezultat toga, da bih napravio promjenu, na primjer, u izborniku, morao sam popraviti samo jednu uključenu datoteku, a odmah nakon toga cijela stranica je transformirana. Dakle, ovaj dizajn je izuzetno koristan i, u najmanju ruku, štedi mnogo vremena.

Međutim, veoma važna tačka. Kako izbjeći ovaj problem: recimo da dva programera čine jednog veliki program. Prvi programer je pronašao gotovu opciju za obavljanje dijela svog zadatka i povezao je pomoću require . Drugi programer je također pronašao potpuno isto gotovo rješenje za svoj zadatak, a također je uključio skriptu koristeći require. Zatim, kada oba programera sastave svoje dijelove, pojavit će se greške. Zašto? I sve zato što su dva puta povezali isti scenario. Pogledajmo jednostavan primjer:

Ako pokrenete ovu skriptu, videćete da je "a.php" datoteka uključena dva puta, međutim, mi smo je pozvali samo jednom. Zašto se to dogodilo? Ali zato što je takođe uključen u datoteku "b.php". To je problem. A to se može riješiti vrlo jednostavno: korištenjem konstrukcije require_once. Sve radi isto, ali ako je datoteka već uključena u ovu skriptu, neće je povezati. Hajde da popravimo "b.php" fajl:

Sada, ako pokrenemo skriptu "c.php", videćemo da je fajl "a.php" pokrenut kako se očekuje samo jednom. Osobno, savjetujem vam da uvijek koristite konstrukciju require_once, osim ako, naravno, ne morate umetnuti istu stvar nekoliko puta (ovo je također ponekad neophodno). Na taj način ćete izbjeći nepotrebne greške.

I, na kraju, želio bih govoriti o još dvije slične konstrukcije, uz pomoć kojih možete uključiti i datoteke trećih strana u PHP - to su include i include_once . Potpuno su slični onima o kojima smo gore govorili, ali postoji jedna mala razlika. U slučaju konstrukcija require i require_once, ako uključena datoteka nije pronađena, izvršenje skripte će biti prekinuto. A kada koristite include ili include_once, upozorenje će se jednostavno prikazati i skripta će nastaviti da se izvršava. To je sva razlika. Čak vam savjetujem da provjerite i sami se uvjerite.

Da bi vaš kod bio čitljiviji, možete, na primjer, staviti definicije funkcije i/ili klase u zasebnu datoteku. Mogućnost uključivanja datoteka u PHP pruža četiri jezička uputstva:

  • uključiti
  • zahtijevaju
  • include_once
  • zahtijevaju_jednom

Sve četiri instrukcije mogu uzeti ime kao parametar lokalni fajl. Izjave include i require su veoma slične u akciji i razlikuju se samo po reakciji na nemogućnost dobijanja traženog resursa. Na primjer, ako je resurs nedostupan, uključite i include_once izdajte upozorenje i pokušajte nastaviti s izvršavanjem programa. require i require_once zaustavljaju obradu stranice ako je traženi resurs nedostupan.

uključiti

Naredba uključivanja vam omogućava da uključite i priložite druge skripte vašoj PHP skripti. Kada se program pokrene, tumač će jednostavno zamijeniti instrukciju sadržajem uključene datoteke. Pogledajmo kako to funkcionira, kreirajte datoteku pod nazivom add.php i upišite unutra:

Sada napravimo drugu datoteku i nazovemo je, na primjer, test.php , u koju ćemo uključiti add.php fajl:

Kao što možete vidjeti iz primjera, naredba include dodaje sadržaj uključene datoteke, zahvaljujući kojoj vaš program dobija pristup drugim varijablama, funkcijama, klasama itd.

Napomena: Uključenim datotekama možete dati bilo koja imena, ali uvijek dodajte ekstenziju .php, jer ako koristite drugu ekstenziju, napadači mogu zatražiti vašu datoteku, a web server će vratiti njen tekst. Ovo je sigurnosni rizik jer se mogu otkriti lozinke ili način na koji vaš program radi, dajući napadačima backdoor. Da bi se to sprečilo, uključene datoteke moraju biti obrađene od strane PHP interpretatora.

Veza unutar funkcije

Ako se uključivanje datoteke dogodi unutar funkcije, tada će se sav kod sadržan u datoteci uključivanja ponašati kao da je definiran unutar te funkcije, tj. kod će imati lokalni opseg. Prepišimo malo prethodni primjer:

Sada dodajmo funkciju test.php:

Pošto smo $var1 deklarirali globalno unutar funkcije, on također postaje dostupan u globalnom opsegu.

Put do datoteke

Datoteke su uključene na osnovu specificirane putanje do datoteke, ako putanja nije navedena, koristit će se staza navedena u direktivi include_path (u konfiguracijskoj datoteci php.ini). Ako datoteka nije pronađena na navedenoj putanji u include_path , naredba uključivanja će pokušati provjeriti trenutni radni direktorij u kojem se nalazi skripta koja uključuje datoteku, ako naredba uključivanja ne može pronaći datoteku, bit će izdano upozorenje.

Ako je staza specificirana - bez obzira da li je apsolutna ili relativna (u odnosu na trenutni direktorij u kojem se nalazi uključena skripta) - direktiva include_path će biti zanemarena.

include_once

Ponašanje include_once identično je naredbi uključivanja, s jedinom razlikom što ako je kod iz datoteke već jednom uključen, neće biti uključen i ponovo izvršen. Ovo pomaže da se izbjegne problem nadjačavanja funkcija, varijabli itd. Da biste bolje razumjeli kako ovo funkcionira, evo primjera:

U test.php pokušaćemo da izvršimo sledeći kod:

Ovo će rezultirati porukom o grešci jer se funkcije ne mogu nadjačati. Da biste izbjegli ovu vrstu greške, trebali biste koristiti naredbu include_once. Hajde da ponovo napišemo kod u test.php fajlu:

zahtijevaju i zahtijevaju_jednom

Izrazi require i require_once rade identično da bi uključili i include_once osim jedne razlike. Ako uključena datoteka nije pronađena, izvršenje skripte će biti zaustavljeno, dok će include i include_once izdati upozorenje i nastaviti s izvršavanjem skripte.

Savjet: pokušajte potpuno napustiti upotrebu uključiti i zahtijevati, koristite njihove analoge sa sufiksom _once. Ovo će olakšati razbijanje velikog, složenog programa na relativno nezavisne module.

21.01.2018

Ne još


Zdravo svima!
Nastavimo učiti osnove PHP-a od nule!
U ovom vodiču ću vam reći kako da uključite datoteku u php.
Zašto trebate uključiti datoteku u php?

Samo trenutak, sad ćeš sve saznati.
Sjećate se naše prethodne lekcije br. 16, o kojoj sam govorio?
Dakle, možete kreirati datoteku, na primjer “function.php” i tamo napisati sve funkcije koje ćete trebati koristiti za stranicu. Ostaje samo da povežete datoteku “function.php” na stranicu stranice i to je to. Ovo je zgodno i nema gomile nepotrebnog koda na glavnoj stranici stranice.

Dat ću vam još jedan primjer gdje možete koristiti vezu eksterne datoteke php.
Na primjer, imate web stranicu od 100 stranica, koja se sastoji od zaglavlja, menija, sadržaja i podnožja.
I odjednom morate dodati još jedan odjeljak u meni. Zamislite: ovo zahtijeva otvaranje 100 datoteka da bi se izvršila ispravka.

Ali sve ovo možete izbjeći ako napravite zasebnu datoteku, na primjer, “menu.php” i povežete je sa svojom web lokacijom gdje bi meni trebao biti. I nakon toga, ako izvršite ispravku samo u jednom fajlu “menu.php”, zamena će se automatski izvršiti na preostalih 100 stranica sajta. Na ovaj način možete povezati zaglavlje, podnožje i sl. Zgodno, zar ne?
Mislim da ću na kraju ovog članka na primjeru pokazati kako to organizirati.
Dakle, za povezivanje eksternog php datoteke, postoje dva glavna dizajna uključivanja: zahtijevaju I uključiti .

Uključena konstrukcija

Konstrukcija uključivanja vam omogućava da uključite datoteke u vaš kod PHP skripta dok je skripta pokrenuta.

Sintaksa include konstrukcije je:

Ako je u folderu:

Kreirajte fajl “function.php” sa ovim kodom:

Sada u datoteci “index.php” Pokušajmo povezati datoteku “function.php” (red br. 2):

rezultat:

Pažnja: postoje slučajevi koje možete zaboraviti i pokušati ponovo uključiti datoteku “function.php” (red br. 2, br. 3):

Kao rezultat toga, može doći do fatalne greške ili se sadržaj datoteke može ponovo prikazati. U mom slučaju će doći do greške:

Fatalna greška: Ne mogu ponovo deklarirati Sreturn() (prethodno deklariran u O:\home\localhost\www\php\function.php:2) u O:\home\localhost\www\php\function.php na liniji 5

Ako uklonite samu funkciju i napišete tekst (fajl “function.php”):

Pa, naravno, u datoteci “index.php” također uklonite izlaz funkcije:

onda će se rezultat jednostavno ponoviti.

Zdravo! Zdravo!

Da biste spriječili takve greške i spriječili ponovno povezivanje datoteke, umjesto naredbe „include“, morate koristiti naredbu „include_once“.

"include_once" konstrukcije

Sintaksa za "include_once" konstrukciju je:

Primjer (red br. 2, br. 3):

Iako postoje dvije veze, datoteka će biti povezana samo jednom, odnosno veza će biti zanemarena, jer je datoteka već povezana.

Konstrukcija zahtevanih inkluzija

Potrebna konstrukcija vam omogućava da uključite datoteke u PHP skriptu prije nego što se PHP skripta izvrši.

Sintaksa za "require" konstrukciju je:

Ako je u folderu:

Ako naiđemo na nekoliko zahtjeva zahtjeva u našem kodu koji uključuju istu datoteku, interpretator će baciti grešku. Da biste izbjegli ovu situaciju, morate koristiti instrukciju "require_once":

"require_once" konstrukcije

Pažnja: ako uključite nepostojeći fajl putem “include”, “include_once”, “require” ili “require_once”, rezultat će biti greška:

Upozorenje: include_once(function1.php) : nije uspjelo otvoriti stream: nema takve datoteke ili direktorija u O:\home\localhost\www\php\index.php na liniji 2

Sada, kao što sam obećao, pokazaću vam kako da povežete meni, zaglavlje i podnožje sajta na sajtu. Uzet ću za primjer gotovu web stranicu, onu koju smo ti i ja radili dok smo studirali.

Podijelimo ovu stranicu u sljedeće fajlove:

Dakle, kreirajte folder "Eksperiment" na (ili hostingu). Postojat će nova stranica za eksperimentiranje.

U fascikli "Eksperiment" kreirajte drugu fasciklu pod nazivom "uključi". Kao što razumete, fascikla „include” će sadržati datoteke za povezivanje (“menu.php”, “heder.php” i “footer.php”).

Sada idite u folder “include” i tamo kreirajte datoteku “menu.php” sa sljedećim kodom:

POČETNA O MENI USLUGE Povratne informacije

Kreirajte drugu datoteku pod nazivom "heder.php" i zalijepite ovaj kod:

web stranica

Obuka o osnovama HTML-a

Kreirajte drugu datoteku pod nazivom "footer.php" i zalijepite ovaj kod:

stranica © 2016

Sada ostavljamo fasciklu “include” i kreiramo glavnu datoteku “index.ph p”
(napomena: ne "indeks. html", odnosno "indeks. php") sa ovim kodom:

HOME

Povezao sam fajlove u redove br. 19, br. 32, br. 38.
Imajte na umu da samo pokazujem dijelove koda koji se izlaze putem "include_once", samo radi razumijevanja, inače se komentari mogu ukloniti, kod će biti kraći i fajl će biti lakši:

Vježbajte osnove HTML-a za web stranicu

HOME

Ovdje će biti tekst za glavnu stranicu

Sada duplirajte ovaj kod za preostale fajlove “obo-mne.php”, “uslugi.php”, “obratnaja-svjaz.php”, samo menjajući tekst zaglavlja i sam sadržaj.

To je sve, pogledajte i proverite.
Za potpunu sreću (tako da se slike prikazuju), ne zaboravite kreirati mapu “image” sa slikama.

Pretplatite se na ažuriranja bloga kako ne biste propustili ukusne lekcije o osnovama PHP-a.

Prethodni post
Sljedeći unos

Pregled