Ablakok.  Vírusok.  Jegyzetfüzetek.  Internet.  hivatal.  Segédprogramok.  Drivers

Ha funkciókat helyeznek el külön fájl, akkor két követelmény és include utasítás teszi lehetővé az összekapcsolását. Az operátorok a következő formátummal rendelkeznek:
igényel(<Имя файла>);
igényelnek<Имя файла>;
include(<Имя файла>);
tartalmazza<Имя файла>;
Helyezzük át az f_Sum() függvényt egy külön fájlba ( lista 17), és csatolja a követelmény utasításhoz ( Lista 16).

Lista 16. A követelmény utasítás használata

Lista 17. A script.inc fájl tartalma

Létrehozhat egy script.inc fájlt például a Notepad++ segítségével. Ne feledje, hogy az include fájl bármilyen kiterjesztéssel rendelkezhet, bár az include fájloknak általában az inc kiterjesztést adják (az „include”).
Próbáljuk meg megnyitni a script.inc fájlt egy webböngészővel. Ennek eredményeként megjelenik a webböngésző ablak forrás:

Emiatt az include fájlokat olyan könyvtárba kell helyezni, amely csak a szkript számára érhető el, de az internetről nem. A PHP telepítésekor és konfigurálásakor megadtuk az include fájlok helyét a php.ini fájl include_path direktívájában:

include_path = ".;C:\php5\includes"

Itt, pontosvesszővel elválasztva, két helyen kell keresni a belefoglaló fájlokat:
□ . (pont) - ugyanabban a mappában, mint futtatható fájl;
C:\php5\includes - az include mappában (c:\php5\includes).
Más szóval, ha nem talál belefoglaló fájlt ugyanabban a mappában, mint a végrehajtható fájl, akkor az értelmező az include mappában keres (c:\php5\includes).
Az include fájlt a következővel is mentheti php kiterjesztés. Ebben az esetben a forráskód nem jelenik meg a webböngésző ablakában.

Ha a mellékelt fájl futtatható kódot tartalmaz, akkor PHP-leírókat kell megadni. Ellenkező esetben a PHP kód sima szövegként kerül kiadásra, és a benne definiált függvények meghívásakor hibaüzenet jelenik meg:
függvény f_Sum($x, $y=2) ( return ($x + $y); )
Végzetes hiba: definiálatlan f_Sum() függvény hívása in
C:\Apache2\htdocs\index.php a 9. sorban
Más szavakkal, a mellékelt fájl tartalmazhat PHP kódot, vagy nem. Például helyezzük át a fejlécet és az f_Sum() függvényt a header.inc fájlba ( lista 19), a lábléc pedig a footer.inc ( lista 20). Ezután összekapcsoljuk ezeket a fájlokat a fő szkripttel ( Lista 18).

Lista 18. HTML kód elhelyezése egy include fájlban

Lista 19. A header.inc fájl tartalma

Funkciók

Lista 20. A footer.inc fájl tartalma

BAN BEN Lista 21 a HTML forráskód az előző program végrehajtása után van megadva.

Lista 21. Forrás HTML

Funkciók 7

Így több oldalhoz is készíthet sablonokat. Az értelmező, ha találkozik a request utasítással, a mellékelt fájl tartalmát az oldal részévé teszi. Ha a fájl nem tölthető be, akkor az utasítás végzetes hibát generál, és a szkript leáll.
A követelmény utasítás helyett használhatja az include utasítást. Ha az include fájl nem található, az operátor hibaüzenetet jelenít meg, de a szkript tovább fut. Ha ez a fájl függvényeket tartalmaz, akkor az ebből a fájlból származó minden függvényhívás is hibát generál.

Az include utasítás igazat ad vissza, ha a fájl betöltődik, és hamis értéket hiba esetén. A hibaüzenetet elnyomhatja a @ operátorral ( lista 22).

Lista 22. Hibaüzenet elnyomása

PHP utasítások: igény(), követelmény_egyszer(), include_once()

Időpont: 2012-10-15

PHP függvények: request(), request_once(), include(), include_once()

Az utolsó órán részletesen elemeztük a munkát. Emlékezzünk arra, hogy az üzemeltető include() PHP-ben az egyik weboldal tartalmát egy másik weboldalra helyettesíti. De vannak a PHP-ben más funkciók is, amelyek lehetővé teszik hasonló feladat elvégzését. Konkrétan ezek a funkciók:

include_once()
igényel()
igényel_egyszer()

Egy adott weboldal tartalmának beillesztéséhez elegendő a kívánt fájl elérési útját megadni argumentumként (zárójelben) ezekhez a függvényekhez. Például így:

include("file.php") vagy request("file.php")

Mindezen funkciók feladata ugyanaz: a kívánt kód vagy szöveg beszúrása egyik fájlból egy másik fájlba. Azonban ezek a funkciók különböznek egymástól. Találjuk ki, mit.

Utótag " _egyszer" lehetővé teszi, hogy a fájlkódot egy másik fájlba való helyettesítéshez csak egyszer kapcsolja össze, függetlenül attól, hogy hány hívás történik. Az érthetőség kedvéért nézzünk egy egyszerű példát. Az utolsó leckében rájöttünk, hogy az operátor használatával include(), áthelyezheti a webhely fejlécét egy külön fájlba header.php, az egyszerűség kedvéért feltételezzük, hogy az oldal grafikus logóját ebbe a fájlba helyeztük. a megfelelő helyen a weboldalon ez az eset a webhely fejléce helyére) írja be a kódot Lista 1.

Lista 1.

Ezután ennek megfelelően a webhely logója is kétszer jelenik meg, körülbelül így:

Egyetértek, nem néz ki túl jól, igaz? Kiderül, hogy az üzemeltető include() kétszer kihúzza a mappából blokkok fájlt header.phpés tegye kétszer a webhely fejlécének helyére.

Általában a mellékelt fájl tartalmazhat olyan függvényeket, amelyek a forrásfájlhoz hozzáadva hibákat okozhatnak, és előfordulhat, hogy a weboldal egyáltalán nem töltődik be.

A nagy webhelyeken nagyon könnyen összezavarodhat, hogy hol és milyen fájlt adott meg, és hogy újra engedélyezhető-e, és ez hibához vezethet. Ezért kitalálták az előtagot " _egyszer" funkciókhoz tartalmazzaÉs igényelnek, amely csak egyszer tartalmazza egy másik weboldalon lévő fájl tartalmát.

Miben különbözik az include() függvény a request() függvénytől

Most beszéljünk, mint egy függvény include() különbözik a funkciótól igényel(). Munkájukban nincs különbség. Mindkét funkció egy másik fájl tartalmát tartalmazza. De van különbség köztük, és ez abban rejlik, ahogyan reagálnak arra a helyzetre, amikor a csatlakoztatott fájl nincs a helyén.

Térjünk vissza az előző kódpéldához Lista 1. A következő kóddal rendelkezünk:

include("blokkok/fejléc.php");

Próbáljuk meg törölni a fájlt header.php, amelyet valójában csatlakoztatunk, például a fájl sérült vagy véletlenül törölték északról.

Frissítjük a tesztfájlt, és a következő hibát látjuk:

Amint látja, megjelent egy üzenet, amely szerint a könyvtárban (mappában) blokkok fájl nem található header.php, de a program továbbra is fut, és a webhely többi része normálisan jelenik meg.

Mi van, ha megírjuk a kódot 3. lista) a funkció használatával igényel():

3. lista.

Require("blocks/header.php");

Akkor van csak egy hibaüzenet jelenik meg, és a program nem fut tovább., és csak ezt az üzenetet fogja látni.

operátor . Az aktiválás a következő módok bármelyikén elvégezhető:

tartalmazza "fájlnév"; tartalmazza $fájl_neve; include("fájlnév");

Példa 3.9. Tároljunk néhány paramétert és függvényt a params.inc fájlban. Minden alkalommal, amikor ezeket a paramétereket (függvényeket) használnunk, beillesztjük a főprogramunk szövegébe az include ("params.inc") parancsot.

params.incinclude.php"; // megjeleníti a "Szia, Vasya!" echo "Today van $ma"; // megjeleníti például: "Ma van 07.07.05" ?> Példa 3.9. Az include utasítás használata

Vegye figyelembe, hogy az operátor használatával tartalmazza egyenértékű a params.inc fájl tartalmának egyszerű beillesztésével az include.php programkódba. Esetleg akkor lehetett írni egy egyszerű szöveget a params.inc-be anélkül, hogy php kódról lenne szó? Ez tiltott! A helyzet az, hogy a fájl beszúrásának pillanatában átváltás történik az üzemmódból PHP feldolgozás HTML módba. Ezért a PHP-szkriptként feldolgozandó include fájlban lévő kódot a megfelelő címkék közé kell zárni.

A beszúrandó fájl keresése a következő szabályok szerint történik.

  1. Először megtörténik a keresés a fájlban include_path az aktuális munkakönyvtárhoz képest.
  2. Ha a fájl nem található, akkor a keresés végrehajtásra kerül include_path az aktuális szkript könyvtárához képest.
  3. Paraméter include_path, amely a PHP beállítási fájljában van megadva, megadja azoknak a könyvtáraknak a nevét, amelyekben keresni kell fájlokat tartalmaz.

Például a tiéd include_path Ezt . (vagyis aktuális könyvtár), az aktuális munkakönyvtár a /www/ . A fő include.php fájlba belefoglalja a my_dir/a.php fájlt, amely viszont tartalmazza a b.php fájlt. Ekkor az elemző először a /www/ könyvtárban keresi a b.php fájlt, ha pedig nincs, akkor a /www/my_dir/ könyvtárban.

Ha a fájl tartalmazza tartalmazza, akkor a benne található kód örökli azon sor változóinak körét, ahol megjelent tartalmazza. Ettől a sortól kezdve a hívott fájl bármely változója elérhető lesz a hívó fájlban. Ennek megfelelően, ha tartalmazza funkción belül jelenik meg hívó fájl, akkor a hívott fájlban lévő kód úgy fog viselkedni, mintha a függvényen belül lenne definiálva. Tehát örökli a funkció hatókörét. Bár még nem ismerkedtünk meg a függvény fogalmával, mégis bemutatjuk itt ezeket az információkat, számítva annak intuitív megértésére.

3.10. példa. A params.inc beillesztendő fájl változatlan maradjon, az include.php pedig a következő legyen:

"; $str .= "Az oldalt $user készítette"; echo "$str"; ) Footer(); // a Footer() függvény meghívása. Kapjuk: //Ma: 08.07.05 //Az oldal Vasya echo "$user , $ma" hozta létre; // vesszőt ír ki, mert // ezek a változók csak // a függvényen belül láthatók?> 3.10. példa. Hatókör az include használatakor

A helyi fájlok mellett a tartalmazza külső fájlokat is felvehet az url-címeik megadásával. Ezt a funkciót a PHP beállítási fájljában található url_fopen_wrappers direktíva vezérli, és általában alapértelmezés szerint engedélyezve van. A PHP for Windows PHP 4.3.0 előtti verziói azonban egyáltalán nem támogatják ezt a funkciót, az url_fopen_wrappers függvénytől függetlenül.

Az include() egy speciális nyelvi konstrukció, és kapcsos zárójelek közé kell tenni, ha feltételes blokkon belül használjuk.

Példa 3.11. Az include() használata

Használata tartalmazza Kétféle hiba lehetséges - beszúrási hiba (például nem található a megadott fájl, maga az insert parancs hibásan van megírva stb.) vagy végrehajtási hiba (ha a hibát a beszúrt fájl tartalmazza). Mindenesetre, ha hiba van a parancsban

Mint tudod, a PHP-nek 4 funkciója van más fájlok felvételére. Ez tartalmazza, tartalmazza_egyszer, igényelnekÉs igényel_egyszer. Miben különböznek és hogyan kell helyesen használni?

Először is nézzük meg a különbséget tartalmazzaÉs igényelnek. Ez a két függvény csak abban különbözik, hogy az include fájl hiányára reagál. Funkció tartalmazza("engedélyezés") ha a megadott fájl hiányzik, akkor hibaüzenetet ad, mint például E_WARNING, de a program folytatódik. Vele ellentétben, igényelnek("require") a mellékelt fájl hiányában végzetes hibát (E_ERROR) ad, ami a szkript végrehajtásának azonnali leállításához vezet.

Tehát a kód végrehajtásának ismerete alapján használhatja az egyik vagy a másik operátort. Például, ha ez csak egy HTML-részlet, amely általában nem befolyásolja a program menetét, vagy ezek néhány kisebb beépülő modul, amelyek nélkül a program többi része normálisan működik, akkor nyugodtan használja tartalmazza. Ellenkező esetben javaslom a használatát igényelnek. Ez megakadályozza a hibás kódvégrehajtás lehetőségét, és hiba esetén (például a mellékelt fájlt törölte egy vírus, vagy elveszett a fejlesztés során) egyszerűen leállítja a szkriptet. Az egyik jövőbeni cikkben megmutatom, hogyan követheti nyomon a kódban található összes nem szabványos helyzetet, és hogyan lehet tisztában lenni azzal, hogy mi történik a webhelyen belül.

Most nézzük a szerkezeteket tartalmazza_egyszerÉs igényel_egyszer. Az egyszerűtől tartalmazzaÉs igényelnek a "_once" végződésben különböznek, ami megakadályozza, hogy ugyanazok a fájlok újra szerepeljenek.

Például, ha az include fájl osztályok vagy függvények leírását tartalmazza, akkor egy ilyen fájlt nem lehet újra beilleszteni, mert újrafuttatásra kerül, és a PHP végzetes hibát ad, amikor már létező nevű osztályokat vagy függvényeket próbál definiálni. Kétségtelen, hogy úgy is fel lehet építeni a kódot, hogy soha ne forduljon elő újracsatlakozás, de ezek felesleges megszorítások és többletmunka. Ezért az "_once" utótagú függvények hasznosak és szükségesek.

A gyakorlatomban kétféle fájlt használok. Az első típus egy vagy több osztályt tartalmazó fájlok, amelyek nem tartalmaznak „közvetlenül” végrehajtott kódot. Az ilyen fájlokat mindig csatlakoztatom igényel_egyszer. A második típus a HTML-t és néhány PHP kódot tartalmazó sablonok vagy sablondarabok. Ezeket a fájlokat a igényelnek, hiszen néha ugyanaz a sablon többször is használható egy oldalon.

soha nem használom tartalmazzaÉs tartalmazza_egyszer, mert a fájl hiányát kritikus helyzetnek tartom, amely azonnali, kompromisszumok nélküli megoldást igényel. És ha olyan fájlt kell beiktatnom, amelynek létezése kétséges, akkor egyszerűen ellenőrzöm a jelenlétét az is_file () paranccsal.

Van még egy trükk az include használatakor. Annak ellenére, hogy valójában ez nem egy függvény, hanem egy nyelvi konstrukció, az operátor a mellékelt fájlon belül működik Visszatérés. Ezért az include ezt az értéket adja vissza a hívott kódnak. Ez így néz ki

$ret = tartalmazza 'file.php';

Mára ennyi, programozzon helyesen!

Ha hibát észlel, jelöljön ki egy szövegrészt, és nyomja meg a Ctrl + Enter billentyűket
OSSZA MEG: