| Rubrika Php / mysql
Tip: správne includovanie súborov
Používaniu funkcie include sa pravdepodobne dá len ťažko
vyhnúť. Jej používanie je jednoduché, no v prípade veľkých projektov,
pri ktorých je kladený dôraz najmä na rýchlosť aplikácie je treba
optimalizovať kde sa dá. V prípade include je dobré
zapamätať si pravidlo, že cesta k includovanému súboru by mala byť
absolútna. Absolútna cesta je kompletná cesta k súboru v rámci
adresárovej štruktúry, teda v prípade nejakého PHP/Apache balíka (napr.
Wamp) nainštalovaného na Windowse by mohla vyzerať napríklad takto:
C:\wamp\www\adresar\subor.php
Jednou možnosťou je písať absolútnu cestu priamo do kódu:
<? include 'C:\wamp\www\adresar\subor.php'; ?>
Toto je však veľmi krátkozraké riešenie, pretože iná cesta je na
localhoste, iná na produkočnom serveri. Aj preto veľa kodérov používa
cesty relatívne. Riešením však môže byť použitie funkcie
dirname, pričom zápis by mohol vyzerať aj takto:
<? include dirname(__FILE__) . '/nazov_suboru.php'; ?>
Konštrukcia dirname(__FILE__) vráti absolútnu cestu
k adresáru, kde je uložený súbor, v ktorom je funkcia dirname zavolaná.
Ďalej stačí dopísať cestu k includovanému súboru. Výstup takejto
konštrukcie bude presne taký istý ako keby sme cestu zapísali „natvrdo“,
avšak jeho použiteľnosť je zaručená na akomkoľvek serveri s ľubovoľnou
adresárovou štruktúrou.
Ďalšou možnosťou je využitie serverovej premennej
$_SERVER[‚DOCUMENT_ROOT‘]. Tá vráti cestu k rootu na
našom serveri a odtiaľ je jednoduché dopísať cestu ku konkrétnemu súboru.
Riešenie môže vyzerať dobre, avšak vzhľadom na to, že vracia iba cestu
k ROOTu, je ďalej nutné ručne dopísať cestu priamo k súboru. A to
môže byť problém, ktorý by vzhľadom na odlišnosti adresárových
štruktúr na rôznych serveroch mohol znamenať nefunkčnosť aplikácie.
<? /* takáto konštrukcia nemusí pracovať vždy správne na každom serveri. V premennej $_SERVER['DOCUMENT_ROOT'] je uložená absolútna cesta k rootu, nie k adresáru, kde máme uložené súbory projektu (napr. public_html alebo www alebo htdocs atď.)*/ include $_SERVER['DOCUMENT_ROOT'] . '/nazov_suboru.php'; ?>
Tomáš Mašek
naspäť
prispieť do diskusie [6]
Vyhľadávanie
Posledných 5 komentárov
Pridať komentár / čítať diskusiu
-
Greeg: westrem: predstav si ze si v neznamom...
-
Petr Kramář: Jenom taková malá poznámka, v PHP 5.3.0...
-
tomas masek: mas pravdu, za standardnych okolnosti by ta...
-
westrem: heh neviem preco ale aj zdanlivo jednoduche...
-
tomas masek: pokial zadas cestu relativnu, server ju musi...
Viac z rubriky
Ako ochrániť includované PHP súbory?
Automatické generovanie formulárov z MySQL
Automatický prevod texu na hyperlink
Cachovanie do HTML súboru
Cachovanie s pomocou funkcií serialize/unserialize
Čiernobiele obrázky v PHP
Dynamická tvorba URL
Fulltext ako názov stĺpca v tabuľke
Getcwd – Ako ľahko získať absolútnu cestu
Import z Excelu do MySQL databázy
Maximálny timeout vykonávania SQL skriptu
Microtime – rýchlosť načítania stránky
Odstránenie diakritiky v PHP pomocou iconv()
Overovanie a kontrola formulárov v PHP
Parsovanie XML súboru v PHP
PHP a zachytenie nedoručených mailov
PHP funkcia implode
Porovnávanie a dátovy typ DATE
Práca so súbormi pri zapnutom safe_mode
Prihlasovanie uživateľa prostredníctvom $_SESSION
Real-time kontrola e-mailovej adresy AJAX-om
Spracovanie dátového typu ENUM do HTML selectu
Strpos a offset – nájdenie výskytu znaku v reťazci
Tip: Generovanie PDF súborov
Tip: jednoduché šifrovanie a dešifrovanie v PHP
Ukladanie jazykových verzií statických textov
Veľmi jednoduchý návod na pekné URI
Vkladanie obrázkov do databázy
Výber záznamov začínajúcich číslom
Vyčistenie viacrozmerného poľa
Vyhľadávanie, pekné URI a diakritika
Vypísanie abecedy v PHP
Využívanie unikátnych kľúčov v MySQL databáze
Zaradenie jednej položky do viacerých kategórií
Zistenie hodnoty ďalšieho ID – autoincrement
Zložené MySQL dotazy – LEFT JOIN
Zvýrazňovanie syntaxe kódu – GeSHi
Pridať komentár



