Keresés
Hírlevél
 
Kiemelt témák
»Hogy viszonyul ehhez a család?
»Legjobb metodika emberi relációk tárolására
»A programozó hibája, hogy törik a programját?
»Jogosultság kezelés mezőszinten
Állás/munka
»SOS emlékeztető animáció programozás
»C# programozói főállás - WebCam Laboratory
»Projektmunkát keresek Delphi , PHP, JS, AJAX
»Delphi fejlesztőt keresek
»Programok, weboldalak, vizsgamunkák készítése!
» több téma
Tudástár
*VS Setup Project
?Ragok levágása magyar szövegben
*CxGrid csoportosított nézet
?Összesítés egy másik tábla adatai alapján
?Kéretlen felhasználó letiltása
URL átírás - CakePHP
?Menü
Mindig null értéket ad vissza, miért?
PHPMailer SMTP kapcsolódási hiba (sajna megint)
Android - 2 objektum nem frissít egyszerre
SQL Query összehozása
C# : WSDL file SOAP hogyan?
Képernyő felbontás vagy méretarány megállapítása
*SSL socket kliens szerver biztonsagos?
?MySQL group by lekérdezés optimalizálás
» több téma
Társalgó
»Mit is tanuljak először Java vs C#?
»Bevezetés a PHP 5 programozásába könyv
»Elveszve a C#-ban - avagy hova tovább?
»Eladó Asus A2500H laptop használtan
»Rails hoszting szolgáltatót keresek
»Ingyenes webáruház, amihez könnyű plugin-kat írni
»Adás feliratozó program
»PHP Melody
»Letölthető az új Rad Studio XE és Delphi XE
»Linq to SQL VS Entity framework .NET
» több téma
ASP  |  C#  |  C++  |  CSS  |  Delphi  |  Flash  |  HTML  |  Java  |  JavaScript  |  Pascal  |  Perl  |  PHP  |  Python  |  Visual Basic  |  Visual C++  |    »    

Tudástár

»

Php források beszúrásakor a path melyik forma?

»

Php források beszúrásakor a path melyik forma?

nyitotta: SlowR, idő: 2010.07.29., moderátor: moderator
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Programozási nyelvek » PHP

Sorrend:
Időzóna:
Blokkméret:
Valószínűleg tiszta hülye vagyok, mert én nem értem ezt az útvonalasdit a require, include-oknál.

Elolvastam majd 50 témát a 177-ből mindenféle include-os kérdésekkel, de erre választ egyikben sem találtam.

Ha pont azt nem olvastam volna amelyikben benne lenne a válasz, előre is bocsi, és szépen megköszönném, ha a linket bevágnátok...

Sőt egy leírást beollóznék ide, amit ezen a címen találtam (http://ikon.inf.elte.hu/wiki/index.php?title=Include):


//Idézet eleje

Útvonalak

Bonyolultabb alkalmazások esetén (vagy egyszerűen az áttekinthetőség kedvéért) megtörténhet, hogy használt osztályainkat, függvényeinket külön fájlokba helyezzük el, ezeket könyvtárakba rendezzük, és futásidőben include-olgatjuk. Például:
index.php
/osztalyok_konyvtar
/adatbazis_osztalyok
mysql.php
pgsql.php
/megjelenito_osztalyok
w1.php
w2.php
...
/fuggvenyek_konyvtar
hitelesites.php
belepes.php
kilepes.php
keret.php
...

Ilyenkor előfordulhat, hogy nemcsak az index.php-ba fűzünk be, hanem a fájlok egymásit s fűzögetik. Ilyenkor érdemes tisztán látni, hogy befűzésnél hogyan használjuk az útvonalakat, főként akkor ha relatív útvonalakat használunk (a szállíthatóság kedvéért nem árt).

Például ha az index.php-ba befűzzük a w1.php fájlt, és abba már be volt fűzve a mysql.php, akkor hogyan kavarjunk? Az irányelv: bárhol fűzöl be, a relatív útvonalakat attól a ponttól számítsd, ahol a kód majd futni fog.

Pl. index.php:
<?php
...
include_once('osztalyok_konyvtar/megjelenito_osztalyok/w1.php');
...
?>

ekkor a w1.php:
<?php
...
include_once('osztalyok_konyvtar/adatbazis_osztalyok/mysql.php');
...
?>

és nem:
<?php
...
include_once('../adatbazis_osztalyok/mysql.php');
...
?>

//Idézet vége


Mi van történetesen akkor, ha a kiinduló állomány nem az index.php, hanem mondjuk a megjelenítő osztályokból, pl. a w2.php?
(Egy ilyen esetet tesztelve akadtam meg...)

Ekkor a w2.php-ba include-olt mysql.php, tegyük fel hivatkozik egy harmadik könyvtárban lévő .php-ra.

Ha az első esetben az index.php-hoz "igazított" útvonalak lesznek a file-okban, akkor a második esethez már nem lesznek jók, és jönnek az aranyos hibaüzenetek.

Ezekre megfelelő kezelés, ha be van állítva az "include_path" a php.ini-ben?
Vagy milyen általános szokások dívnak erre az esetre?

A válaszokat előre is nagyon szépen köszönöm...
Ezt abszolút útvonallal lehet kiküszöbölni.
(legalábbis a legkézenfekvőbb megoldás ez)
Köszi a gyors választ.

Tehát arra gondoltál, hogy az állomány teljes útvonalával együtt kerüljön a require paraméterébe?

Ha jól emlékszem Micu kolléga szerint ez a ronda megoldás?



Akkor viszont a beszúrt idézetből ez a sor talán kicsit félrevezető...

Az irányelv: bárhol fűzöl be, a relatív útvonalakat attól a ponttól számítsd, ahol a kód majd futni fog.
Nem kell érteni, csak kitalálni egy koncepciót, és azt követni.
Például amit a felhasználó hív, az mind a "gyökérben" van, amit azok beemelnek, lehetnek alkönyvtárakban, akkor az include ilyesmi lesz:

include ('adatbazis/oracle.php');
include ('sajat_rutinok/jelszoellenorzo');
Ezt abszolút útvonallal lehet kiküszöbölni.
Aminek nagy hibája, hogy van olyan szerver, ahol az abszolult gyökere nem az alap (kifele látható) index.php mappája, hanem lehet, hogy egy (esetleg 2...) szinttel mélyebben van.

Így egy szerver átállítás pillanatok alatt bekeverhet.

Ha jól emlékszem Micu kolléga szerint ez a ronda megoldás?

Azért ronda, amit elmondtam.
Szerintem célszerűbb saját magától indulni.
A saját magánál persze vigyázni is kell, mert érdekes játék, ha a index.php-ban
include 'mappa/x.php';
akkor hol is van az x.php "saját magaként" egy abból include-nál

Főleg, hogy utána az x.php-ban a
<img src="kep.jpg">
melyik mappára vonatkozik.
Ez így elsőre már jobban tetszene, mint ömlesztve egy rakat include-ra váró állomány.
Tehát ami elsősorban megjelenít az a "root"-ban lenne, és nem kell jobban felborítani a könyvtárakkal elkülönített file-okat sem.
Nem értem néha miért nem jut eszembe magamtól egy ilyen egyszerű megoldás.
Csak pörögtem a nyamvadt útvonalak között.
Kösz...
Sajna, ez a teljes útvonalasdi még a saját teszt szerverem sem működik.
Bár nem is sajnálom, mert nagyon rossz lett volna mindenütt ezt az útvonalat sas szemezni.
Azért kösz...
A php.ini include_path változója úgy néz ki szépen működik.
Egy kicsit zavaró csak, hogy akkor minden file név előtt el kell hagyni a könyvtárát, és ránézésre hirtelen nem lehet gyorsan eldönteni, hol is csücsülhet a file, ha piszkálni kell.
De még egy kérdés felmerült bennem.
Akkor vajon miért nem terjedt el ennek az include_path-nak a beállítása erre az útvonal problémára?
Belépés
E-mail cím:
Jelszó:

RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Micu2.280
»Interlock660
»Frostech0570
»Pitta_530
»mezofi460
»Riha340
»Varsi310
»netangel120
»n0rb1120
»szbzs.2110
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Vodka
»Joexy
»Ivn
»Kelemzol
»Balucinho
» ugrás a wikire
A nap kifejezései
ȃrtelmezett nyelv
»Szkriptnyelv
»Turbo Pascal
» ugrás a wikire
jobline.hu
»Operations szakértő
»MSSQL adminisztrátor
»SAP BC specialista
»Szoftvertesztelő
»Oracle DBA
» még több állás
Hírek
»Webjáték-fejlesztő versenyt indít a Mozilla
»Megnyitja a Wave forráskódját a Google
»Már SVG fájlokat is indexel a Google
» több hír
PC Fórum hírek
»Tíz kritikus biztonsági hibát javít az új Firefox
»A Pirate Bay is áldozatául esett a tegnapi torrent-razziáknak
»Kiszivárgott videón az Internet Explorer 9
»Fájlcsere-razziák zajlanak ma Európaszerte - és Magyarországon is
»Darabjaira hulló logóval ünnepli 12. születésnapját a Google
»USB 3.0-s Intel alaplapok már idén?
»Rejtélyes Internet Explorer-sebezhetőséget vizsgál a Microsoft
»Legális fájlcsere havi párszáz forintért?
Tagi blogok
»PSP
»Első Programozó
»USB
»PHP, mint sablonmotor egyszerűen