home 2024. április 24., György napja
Online előfizetés
A PHP-require parancs
Erdsoft
2019.03.18.
LXXIV. évf. 11. szám
A PHP-require parancs

Előző heti cikkünkben bemutattuk az include parancsot, melynek segítségével egyszerűen beilleszthetjük és módosíthatjuk azokat a fájlokat, amelyek minden weboldalon megjelennek — mint amilyen például a menü vagy a fejléc.

Mutattunk néhány gyakorlati példát, és megsúgtuk, hogyan kerülheted el a gyakori hibákat. A cikk végén azonban megemlítettük, hogy létezik egy nagyon hasonló parancs is, a require.

Vannak olyan esetek, amelyekben az include helyett érdemesebb a require parancsot alkalmazni. Hogy miért? Mindjárt rátérünk, előbb azonban bemutatjuk a require parancsot egy kicsit részletesebben.

A require parancs sokat segít, ha szeretnénk gyorsítani a munkánkat. Egy gyakran alkalmazott fájlt, mely minden oldalon megjelenik, nem kell mindenhova egyenként bemásolnunk. A require parancs segítségével ezt sokkal gyorsabban és egyszerűbben el tudjuk végezni. A működését illetően ugyan a require megegyezik az include paranccsal, de azok kedvéért, akik szeretnének ismételni, bemutatjuk a require parancsot is egy példán.

Vegyük a “menu.php” fájlt, melyet szeretnénk minden oldalon megjeleníteni. A fájl így fest:

<a href="http://www.example.com/index.php">Kezdőlap</a> -
<a href="http://www.example.com/about.php">Rólunk</a> -
<a href="http://www.example.com/links.php">Linkek</a> -
<a href="http://www.example.com/contact.php">Kapcsolat</a> <br />

Ha a fájlt szeretnénk a require parancs segítségével beilleszteni az “index.php” fájlba, azt a következőképp tehetjük meg:

<html>
<body>
<?php require("menu.php"); ?>
<p>A require parancs használatát gyakorlom!</p>
</body>
</html>

A kód a böngészőben a következő eredményt mutatja:

Kezdőlap      Rólunk            Linkek            Kapcsolat

 

A require parancs használatát gyakorlom!

Ha ugyanezt nemcsak az “index.php”, hanem az “about.php”, “links.php”, “contact.php” fájlokban is elvégezzük, sokat könnyíthetünk a munkánkon, ha változtatni akarunk a menün (például egy Termékeink menüpontot is hozzá szeretnénk adni), hiszen elég, ha a “menu.php” fájlon módosítunk. Ha nem használnánk ezt a parancsot, a változásokat minden egyes fájlba egyenként kellene bevinnünk, bemásolnunk.

Megállapíthatjuk, hogy a require parancs is igen hasznos, akik azonban előző cikkünket is olvasták, észrevehetik, hogy valóban nincs különbség a require és az include működése között. Miért jobb mégis az egyik, mint a másik?

 

Require vs. include

Megállapítottuk, hogy az include parancshoz hasonlóan a require parancsot is arra használjuk, hogy egy fájlt illesszünk a PHP-kódba. A kettő között azonban egy óriási különbség van, ami első ránézésre jelentéktelennek tűnhet. Ha az include parancs segítségével beillesztünk egy fájlt, de a PHP nem találja, egy ilyen hibaüzenetet látunk majd:

PHP-kód

<?php
include("noFileExistsHere.php");
echo "Helló Világ!";
?>

 

Megjelenítés

Warning: main(noFileExistsHere.php): failed to open stream: No such file or directory in /home/websiteName/FolderName/Script.php on line 2

Warning: main(): Failed opening 'noFileExistsHere.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/websiteName/FolderName/Script.php on line 2

 

Helló Világ!

 

Figyeljük meg, hogy az echo parancs továbbra is működik. Ez azért van, mert a Warning (figyelmeztetés) nem akadályozza meg, hogy a PHP-script lefusson. Másrészről viszont, ha ugyanezt a require paranccsal próbáljuk meg véghezvinni, a következő történik:

PHP kód

<?php
require("noFileExistsHere.php");
echo "Helló Világ!";
?>

 

Megjelenítés

Warning: main(noFileExistsHere.php): failed to open stream: No such file or directory in /home/websiteName/FolderName/Script.php on line 2

Fatal error: main(): Failed opening 'noFileExistsHere.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/websiteName/FolderName/Script.php on line 2

Az echo parancs nem működik, mert a script futtatása leállt a require parancs által okozott fatal error után. Ezért javasoljuk azt, hogy a require parancsot használd az include helyett, mert nincs értelme, hogy fussanak a scriptek, ha a fontos fájlok hiányoznak, vagy hibásan vannak elnevezve.

 

A require_once parancs

Ha egy hosszú kódban véletlenül többször is használtuk a require parancsot ugyanarra a fájlra vonatkozóan (ez leggyakrabban a funkciók esetében fordul elő), konfliktus lép fel, és a kód nem fog (helyesen) működni. Ezt a require_once paranccsal tudjuk elkerülni, mely csak egyszer fogja lekérni a fájlt, attól függetlenül, hogy a kódban több ilyen parancs is van.

 

Összegzés

Mai cikkünkkel befejeztük az include és a require parancsokkal való ismerkedést. Reméljük, nem találtad őket túl bonyolultnak, és abban is sikerült segítenünk, hogy eldöntsd, melyiket mikor érdemes alkalmaznod. A jövő héten egy új témába vágunk bele, tarts velünk akkor is!

 


 

NYEREMÉNYJÁTÉK!

Rovatunk elsődleges célja, hogy közelebbről is bemutassa a legismertebb webtechnológiákat. Azok között az olvasók között, akik minden héten követik rovatunkat, azaz velünk tanulják a programozás alapjait és kitöltik a feladatsort, a sorozat végén egy laptopot sorsolunk ki.

A játék heti kérdése:

Milyen hibát kapunk, ha egy nem létező fájlt próbálunk a require paranccsal használni?
1. warning
2. fatal error
3. notice

 
A választ a tanulok@erdsoft.com e-mail-címre kell elküldeni, a tárgysorba pedig
a következőt kell beírni: HÉTNAP-TANULOK. Sok szerencsét!

 


 

Néhány szó rólunk:

Az ErdSoft (www.erdsoft.com) 2011-ben alakult meg. Csapatunkat a fiatalos lendület, a szakértelem, a folyamatos tanulás és tapasztalatgyűjtés jellemzi. Ügyfeleinknek igyekszünk teljes körű szolgáltatást nyújtani — bátran fordulhatnak hozzánk, legyen szó webfejlesztésről, alkalmazásokról, SEO-optimalizálásról, grafikai tervezésről, marketingről vagy szövegírásról. Csapatunk sikerét mi sem bizonyítja jobban, mint a több száz elkészült weboldal és a számos elégedett ügyfél Szerbiában, Magyarországon és az Egyesült Királyságban.

Hozzászólások
Hozzászólások
0
Hozzászólás küldése
1000 karakter áll rendelkezésére
A megjegyzésekben kifejtett vélemények a hozzászólások szerzőinek magánvéleményei, és nem tükrözik az internetes portál véleményét. A megjegyzéseket moderáljuk és jóváhagyjuk az általános szerződési feltételeknek megfelelően.
Támogatóink
Az oldal sütiket használ, hogy személyre szabjuk a tartalmakat és reklámokat, hogy működjenek a közösségi média funkciók, valamint hogy elemezzük a weboldal forgalmát. Bővebben a "Beállítások" gombra kattintva olvashat.
Az oldal sütiket használ, hogy személyre szabja az oldalon megjelenő tartalmat és reklámokat..