Suhteline ja absoluutne tee Linuxi juurde. PHP faili absoluutne ja suhteline tee

Nagu teate, on sildi parameetris href () peate määrama viidatava faili tee.
Paljud inimesed kirjutavad midagi sellist nagu http://somesite.ru/catalog/doc.html. Jah, keegi ei vaidle vastu, see toimib. Kuid on üks "aga". Vaatame näidet.

Laske oma saiti majutada näiteks mõnes tasuta hostimises ja selle aadress oli järgmine: http://fsite.freehosting.ru.
Serveris on umbes 100 dokumenti. Nii et otsustate oma veebisaidi teisele domeenile teisaldada,
olgu rutsoonis tasuline hostimine: http://site.ru. Kas me peaksime nüüd kõikjal http://fsite.freehosting.ru muutma aadressile http://site.ru?
Jah, tänu sellistele toimetajatele nagu koduleht, on see võimalik. Kuid see pole lahendus.
Oletame, et enne lehe serverisse laadimist kontrollite selle funktsionaalsust
oma koduses apache-serveris (neile, kes veel ei tea, mis on "koduserver", minge siia (Apache-serveri installimine ja konfigureerimine) ja http://localhost asemel peate kirjutama http:// site.ru igal pool nõus sellega, see on vähemalt ebamugav.

Lahendus on faili tee määramisel võtta arvesse mitte selle asukohta saidil, vaid selle asukohta serveris.

Absoluutne tee

Võtame näiteks faili doc.html, mis asub aadressil: http://somesite.ru/catalog/doc.html. Nagu teate, on serveris kaust www. Nagu aadressist näeme, sisaldab see kaust kataloogi kausta ja see sisaldab juba faili doc.html.

Kui faili tee määramisel asetate aadressi ette /, sarnaneb see järgmisega: juurkataloog_põhjas/www/faili tee.
See tähendab, et http://somesite.ru/catalog/doc.html on sarnane järgmisega: /catalog/doc.html.
Seega, kui aadressi ees on /, tähendab see, et "tagasiloendus" algab www kataloogist.
Nüüd saate http://localhost/index.html asemel kirjutada /index.html mis tahes dokumendist.
Kuid cgi kataloogi jõudmiseks peate kirjutama järgmiselt: /cgi-bin/faili tee.

Ülalkirjeldatud meetoditega loodud teid nimetatakse absoluutseks, kuna näidatakse serveris oleva faili absoluutne (täielik) tee.

Suhteline tee

Samuti on suhtelised teed, mis on määratud selle dokumendi enda suhtes, millest link pärineb.
Näiteks kui loote lingi failis doc.html newcat/new.html, tähendab see, et fail new.html asub newcati kataloogis, mis omakorda asub failiga doc.html samas kataloogis. Nagu näete, on see tee faili doc.html suhtes suhteline. Ükskõik, kus see fail asub, on tee newcat/new.html alati kehtiv, kui fail doc.html ja kataloog newcat on samal tasemel (st samas kataloogis).

Samuti saate dokumendi suhtes kataloogi ülespoole liikuda. Selleks tuleb kirjutada ../.
Näiteks on kataloog suur, see sisaldab kahte kataloogi: esmane ja sekundaarne. Esmane kataloog sisaldab juba tuttavat faili doc.html; ja teiseses kataloogis on fail new.html. Et luua link failist doc.html faili new.html, tuleb kirjutada ../secondary/new.html. Aga kui suur kataloog asub www kataloogis, saab faili new.html tee määrata järgmiselt: /big/secondary/new.html

Järelduse asemel tasub öelda, et absoluutsete ja suhteliste radade kasutamine hõlbustab oluliselt veebimeistrite tööd, olgu see siis algaja või professionaal. Nii et kasutage seda võimalust, nagu öeldakse, täiel määral ja proovige vältida selliseid teid nagu http://site.ru/catalog/file.file või vähemalt kasutada nende abi nii vähe kui võimalik.

Hea halb

Absoluutsed teed


Sel juhul on kõik väga lihtne, näitame otsetee teises domeenis asuva faili juurde. Võimalik on määrata lühendatud tee, kasutades alguses kahte kaldkriipsu, ilma http või https sõnaselgelt määramata ning server ise asendab vajaliku protokolli (laiendi) vastavalt serveri sätetele. Oluline on märkida, et see vaade on vajalik saitide vahel navigeerimiseks:
http://google.com

Võrreldes saidi juurega


Sel juhul võtab brauser saidi domeeni ja asendab sellele määratud lingi. Sel juhul see toimib http://site/css/style.css. http puhul ei pea https-i pärast muretsema, kuna see võetakse sellisel kujul, nagu leht parasjagu avatud on, ehk siis http puhul on see http. Samuti on see väga mugav teatud funktsioonide ülekandmiseks erinevate saitide vahel või saidi ülekandmiseks ühest domeenist teise ilma koodi puudutamata. Prioriteetne viis lehtede ja failide teede määramiseks.

Selle lehe kohta


Vähem populaarne meetod, kuna see võtab praeguse lehe ja lisab oma teele uue aadressi ..com/trick/css/style.css . Peaaegu võimatu kasutada juhtudel, kui kasutame CNC-d.

Alusmärgi kasutamine


Sel juhul asendatakse standardse domeeni asendamise asemel tee baasist suhtelise teega. See tähendab, et me saame faili asukohaga:
http://site/tricks/css/style.css

Suhtelised ja absoluutsed teed PHP-s

Kõik on väga lihtne, failisüsteemis töötades järgime PHP-s teedega töötamise reegleid. Kui anname käsu edasi kliendibrauserile, siis kasutatakse HTML-teid. See tähendab, et järgmises näites edastame PHP-st tee brauserile koos lehega, kuhu see peab minema. Seda, et brauser on lehtede vahel ülemineku teinud, on näha aadressiribal:
header("Asukoht: /leht2.php");
Niisiis, me avame lehe page1.php ja aadressiribale kirjutatakse leht2.php ja kogu asi on selles, et brauser laadis ESIMESE lehekülje lehe page1.php ja seejärel sai teabe ümbersuunamisega ja LAADI teise lehe page2.php. Sel juhul toimus ümbersuunamine kliendi (brauseri) poolel, mis tähendab, et kasutame HTML-iga (veebiaadressiga) seotud reegleid.

Absoluutne tee PHP-s

Absoluutset teed PHP-s käsitletakse absoluutse teena kataloogist, kuhu veebiserver on installitud. Selle tee saate:
$_SERVER["DOCUMENT_ROOT"]
Kui võtame selle serveri näitena, siis selle tee on: /home/school/public_html/schoolphp, mis tähendab, et fotole “/photo/img1.jpg” täieliku tee määramiseks tuleb määrata järgmine. tee:
getimagesize("/home/school/public_html/schoolphp/photo/img1.jpg"); getimagesize($_SERVER["DOKUMENTI_JUUR"]."/photo/img1.jpg");
Tahaksin märkida, et sait võib asuda alamkataloogis, see tähendab:
http://site/forum/
DOCUMENT_ROOT-i kasutamine võib olla äärmiselt keeruline, kuna foorum (välise skriptina) ei tea veel, kus see saidil asub. Selle probleemi lahendamiseks on mitu võimalust, loetleme paar:

1) Looge leht alamdomeenina.

2) Kirjutage faili config.php konfiguratsiooni absoluutne tee, see tähendab:
Tuum::$ROOT = $_SERVER["DOCUMENT_ROOT"]; getimagesize(Core::$ROOT."/photo/img1.jpg"); // kasutage absoluutset teed, mida saab muuta
Nüüd saate kogu oma saidi linkida Core::$ROOT-iga ilma kahetsuseta ja kui peate kogemata kaasasoleva faili teed muutma, saate Core::$ROOT väärtuse alistada;

Suhteliselt algusfailiga (baas)

Paljudes index.php süsteemides on üks sisenemispunkt, st avaneb index.php ja sellest ühendatakse muud failid.
sisaldama "./modules/allpages.php";
Sel juhul ühendatakse allpages.php mööda teed: /home/school/public_html/schoolphp/modules/allpages.php. See meetod on mugav, sest kui kirjutate faili allpages.php: include "./modules/module/page.php";, siis otsitakse seda ikkagi sisestuspunkti, nimelt index.php suhtes:
/home/school/public_html/schoolphp/modules/module/page.php
See on üsna mugav rakendus, arvestades, et me teame selgelt oma rakenduse struktuuri võrreldes juurfailiga index.php. Isegi kui kutsume mõnda muud faili peale index.php, töötavad teed täpselt samamoodi. Kutsusime dir.php , mis tähendab, et teed võetakse dir.php faili suhtes!

Mida sa veel teadma pead?

Ma ei saanud jätta meeldetuletajatele, kes unustasid, või soovitada neile, kes ei tea, et tagasi saab minna mitte ainult sügavale kataloogidesse, vaid ka üles (kaustad tagasi) ja nende süntaks on üsna lihtne:
sisaldama "../file.php";
Sel juhul võetakse selle faili kataloog või juur-indeks.php ja tagastatakse 1 kaust tagasi, kust otsitakse faili “file.php”.

DOCUMENT_ROOT ei ole ainus võimalus saidi juurtee hankimiseks. Vaatame juhendit: "Dokumendi juurkataloog, milles praegune skript käivitatakse, on täpselt see, mis on määratud serveri konfiguratsioonifailis." . See tähendab, et kui tee on konfiguratsioonifailis valesti kirjutatud, siis kogu sait ei tööta. Mida teha? Võite kirjutada serverit majutava hosti administraatoritele ja omanikele lootusega, et nad parandavad oma puudused. Või otsige stabiilset alternatiivi, milleks on __DIR__ , see on antud faili absoluutne tee, kus kood töötab. Oletame, et meil on konfiguratsioonifail konfiguratsioonikaustas ja selleks, et __DIR__ kasutades ei peaks me iga kord ühte kausta ülaossa tagasi minema, kirjutades __DIR__"/../", saame oma muutujasse turvaliselt kirjutada __DIR__, allolevas näites kirjutasin selle klassi atribuudis (tund nr 24 , kes seda ei saanud, kasutage tavalist muutujat):
Tuum::$ROOT = __DIR__; // Või vana PHP jaoks - dirname(__FILE__);
Tahtsin teile ka midagi huvitavat ja olulist meelde tuletada. Turvalisuse järgi keelab veebiserver saidi juure kohal olevates kataloogides liikumise. See tähendab, et sait asub järgmisel teel: /home/school/public_html/schoolphp, kuid kaustade /home või /home/school sisu pole lugemiseks saadaval.

Kas PHP saab kasutada HTML-i teid? Jah, erifunktsioonides, näiteks:
file_get_contets("http://sait");

Harjuta

Oma vanades projektides kasutasin DOCUMENT_ROOT-i, nüüd lülitusin suhtelisele index.php teele "./folder/file".

Zend2, PHP arendajate toode, mis on hetkel üks keerukamaid FrameWorki, kasutab ka minu omast erineva süntaksiga suhtelisi teid ehk “kaust/fail”.

IPB.3 foorum kasutab dirname(__FILE__).

Järeldused:

1) HTML-is kasutame saidi juurega seotud teid, nimelt “/file.php” (rida algab kaldkriips).
2) PHP-s kasutame juurfaili "./file.php" suhtes (rida algab punkt ja kaldkriips), alternatiiviks oleks kasutada juurtes lähtestatud atribuuti: __DIR__;
3) Päise ümbersuunamine kasutab HTML-i teid. PHP töötab failisüsteemiga (failide ühendamine, piltide salvestamine ja redigeerimine) - PHP teedega.

Nagu teate, on sildi parameetris href () peate määrama viidatava faili tee.
Paljud inimesed kirjutavad midagi sellist nagu http://somesite.ru/catalog/doc.html. Jah, keegi ei vaidle vastu, see toimib. Kuid on üks "aga". Vaatame näidet.

Laske oma saiti majutada näiteks mõnes tasuta hostimises ja selle aadress oli järgmine: http://fsite.freehosting.ru.
Serveris on umbes 100 dokumenti. Nii et otsustate oma veebisaidi teisele domeenile teisaldada,
olgu rutsoonis tasuline hostimine: http://site.ru. Kas me peaksime nüüd kõikjal http://fsite.freehosting.ru muutma aadressile http://site.ru?
Jah, tänu sellistele toimetajatele nagu koduleht, on see võimalik. Kuid see pole lahendus.
Oletame, et enne lehe serverisse laadimist kontrollite selle funktsionaalsust
oma koduses apache-serveris (neile, kes veel ei tea, mis on "koduserver", minge siia (Apache-serveri installimine ja konfigureerimine) ja http://localhost asemel peate kirjutama http:// site.ru igal pool nõus sellega, see on vähemalt ebamugav.

Lahendus on faili tee määramisel võtta arvesse mitte selle asukohta saidil, vaid selle asukohta serveris.

Absoluutne tee

Võtame näiteks faili doc.html, mis asub aadressil: http://somesite.ru/catalog/doc.html. Nagu teate, on serveris kaust www. Nagu aadressist näeme, sisaldab see kaust kataloogi kausta ja see sisaldab juba faili doc.html.

Kui faili tee määramisel asetate aadressi ette /, sarnaneb see järgmisega: juurkataloog_põhjas/www/faili tee.
See tähendab, et http://somesite.ru/catalog/doc.html on sarnane järgmisega: /catalog/doc.html.
Seega, kui aadressi ees on /, tähendab see, et "tagasiloendus" algab www kataloogist.
Nüüd saate http://localhost/index.html asemel kirjutada /index.html mis tahes dokumendist.
Kuid cgi kataloogi jõudmiseks peate kirjutama järgmiselt: /cgi-bin/faili tee.

Ülalkirjeldatud meetoditega loodud teid nimetatakse absoluutseks, kuna näidatakse serveris oleva faili absoluutne (täielik) tee.

Suhteline tee

Samuti on suhtelised teed, mis on määratud selle dokumendi enda suhtes, millest link pärineb.
Näiteks kui loote lingi failis doc.html newcat/new.html, tähendab see, et fail new.html asub newcati kataloogis, mis omakorda asub failiga doc.html samas kataloogis. Nagu näete, on see tee faili doc.html suhtes suhteline. Ükskõik, kus see fail asub, on tee newcat/new.html alati kehtiv, kui fail doc.html ja kataloog newcat on samal tasemel (st samas kataloogis).

Samuti saate dokumendi suhtes kataloogi ülespoole liikuda. Selleks tuleb kirjutada ../.
Näiteks on kataloog suur, see sisaldab kahte kataloogi: esmane ja sekundaarne. Esmane kataloog sisaldab juba tuttavat faili doc.html; ja teiseses kataloogis on fail new.html. Et luua link failist doc.html faili new.html, tuleb kirjutada ../secondary/new.html. Aga kui suur kataloog asub www kataloogis, siis saab faili new.html tee määrata järgmiselt: /big/secondary/new.html

Järelduse asemel tasub öelda, et absoluutsete ja suhteliste radade kasutamine hõlbustab oluliselt veebimeistrite tööd, olgu see siis algaja või professionaal. Nii et kasutage seda võimalust, nagu öeldakse, täiel määral ja proovige vältida selliseid teid nagu http://site.ru/catalog/file.file või vähemalt kasutada nende abi nii vähe kui võimalik.

Iga veebileht, pilt, video jne on ennekõike fail, millel on oma absoluutne või sugulane tee (aadress). Fail ise Internetis asub arvutis nimega server. Seetõttu peaksite kaaluma, kuidas faili serveris ja Internetis esitatakse. Selles artiklis tahaksin selgitada ülaltoodud punkte ja tõstatatud probleemi. Kas proovime?

Absoluutne tee (aadress)

Mis on faili absoluutne tee?

Absoluutne tee või aadress on täielik tee või aadress, suhteline serveri kodukaust või Interneti domeeninimi.

Öeldes " kodukaust"Ma pean silmas hostiteenuse pakkuja poolt eraldatud ruumi algust. Näiteks kui me räägime Windowsi operatsioonisüsteemi kohalikust serverist, toimib draiv ise kodukaustana, st C:/. Samal ajal eraldab hostiteenuse pakkuja kasutajale sageli ainult teatud virtuaalse (tingimusliku) ruumi, mille kodukaustavana toimib teatud kaust, mida sageli nimetatakse /home.

Öeldes " Domeeninimi"Ma mõtlen URL-i, mis algab protokolli mainimisega, näiteks: http://sitename.ru/. Internetis on see iga esitatud ressursi kodukaust.

Kuidas PHP-s serveri absoluutset teed teada saada?

Kui URL-aadressiga on kõik enam-vähem selge, siis serveri kodukaustaga on olukord mõnevõrra keerulisem. Lõpuks on igal pakkujal oma probleemid ja sellega tuleks arvestada.

Lubage mul alustada sellest, et serveri absoluutne tee määratakse tavaliselt selle skripti asukoha järgi, milles see juhtub. Näiteks fail config.php asub saidi juurkaustas ja me peame välja selgitama selle absoluutse tee.

Lubage mul selgitada, öeldes: " Juurkaust"Ma pean silmas saidile pühendatud kausta serveris. See on URL-i lähtepunkt domeeninime suhtes.

Selleks saate kasutada konstanti __FILE__, mis sisaldab aktiivse faili täielikku asukohta ja nime, milles seda kutsutakse. Ainult täieliku tee hankimiseks ja aktiivse faili nime eemaldamiseks võite kasutada funktsiooni dirname(), mis tagastab määratud tee emakataloogi. Näiteks:

$abspath = dirname(__FILE__) ."/";

PHP 5.3 ja uuemates versioonides saate juba kasutada konstanti __DIR__:

$abspath = __DIR__

Seega on väga mugav kaasata edaspidi fail config.php ja kasutada lähtepunktina selles saadud muutuja $abspath absoluutset teed. Oletame näiteks, et skript test.php asub kaustas: path/ - ja soovitud fail data.txt on kaustas: data/. Sel juhul võib kõne välja näha järgmine:

Include_once(../config.php"); $fh = fopen($abspath ."/2013/12/data/data.txt", "r");

Pange tähele, et ühendasin faili config.php suhtelise tee abil, kuid sellest lähemalt hiljem.

Suhteline tee (aadress)

Mis on suhteline failitee?

Suhteline tee või aadress on tee või aadress, mis on seotud selle faili asukohaga, milles teisele failile juurde pääseb.

Iga failisüsteem on vanema- ja alamkaustade ning failide range hierarhia. Näiteks: C:\kaust\fail.php – siin on kaust\kaust draivi C:\ alam ja faili fail.php faili vanem.

Selguse huvides vaatleme järgmist hierarhiat:

  • fail1.php
  • kaust\
    • fail.php
    • alamkaust\
      • fail3.php

Et failist C:\kaust\fail.php pääseda ligi failile C:\file2.php, peame väljuma aktiivsest kaustast\, s.t. tõuse ühe taseme võrra. Selleks võite kasutada, kausta (Ma ütleks isegi pseudokaust) emakataloog, mis tähistab kahte punkti (..) . Teisisõnu saame tee: ..\file2.php - faili fail.php suhtes.

Faili C:\kaust\fail.php pääsemiseks failist C:\kaust\alamkaust\file3.php , peame sisestama alamkausta\ alamkausta, st. mine ühe taseme võrra alla. Nii saame tee: alamkaust\file3.php - faili fail.php suhtes.

Teeme asja keerulisemaks ja läheme failist C:\kaust\alamkaust\file3.php faili C:\file2.php . Suhteline tee näeb välja selline: ..\..\file2.php – oleme tõusnud kaks taset kõrgemale. Tee vastupidi, s.t failist C:\file2.php pöördume faili C:\folder\subfolder\file3.php. Suhteline tee näeb välja selline: kaust\alamkaust\file3.php – me läheme kaks taset allapoole.

Suhtelise tee (aadressi) eelised ja puudused

Ilmselgelt ei sisalda suhteline tee kodukausta ja ülemkaustu. Seega on lõplik aadress lühem. Veelgi enam, kui teil on vaja ühest domeenist teise kolida, pole vaja uut absoluutaadressi registreerida.

Teisest küljest, kui tsiteerime mõne muu ressursi saidi sisu samade piltidega, millel on määratud suhteline tee, saame veateate, kuna Kolmanda osapoole ressursil pole saidi kaustu ega faile. See juhtub siis, kui lehte vaadatakse otsingumootori vahemälus. Jällegi, suhtelise tee kasutamine võib kergesti teha vea, mille tulemuseks on saidi indekseerimise probleem.

Kokkuvõtteks tuleb märkida, et suhteliste teede või aadresside kasutamine on soovitatav minimeerida ning kasutada absoluutseid teid ja aadresse.

Järeldus

Oma artiklis püüdsin käsitleda põhiprobleemi, mis on seotud failide ja kaustade absoluutsete ja suhteliste teede (aadressidega). Tegelikult on nii, et kui töötate arvutiga, siis on teil failisüsteemist a priori juba ettekujutus, kuid mõningaid nüansse arvesse võtmata on üsna raske maast lahti saada ja tõstatada mitmeid probleeme, mis paratamatult on seotud õige adresseerimine. See on kõik, mis mul on. Tänan tähelepanu eest. Edu!

kell 8:00 Redigeeri sõnumit 5 kommentaari

teie sait on justkui kahemõõtmeline.
Reaalne ja virtuaalne.

Kõigi külastajate jaoks on see virtuaalne veebiserver. Mis erineb muu hulgas selle poolest, et sellel EI OLE FAILID. kui kirjutad %20" target="_blank">http://site.ru/file.html- see ei ole fail. See on URI, virtuaalne aadress. Serveris ei pruugi üldse olla faili nimega file.html. Need on kõik virtuaalsed aadressid, mitte failid.
Ja brauser töötab konkreetselt aadressidega.

Arendaja jaoks on veebisait programm, mis töötab väga konkreetses reaalses arvutis. Väga spetsiifilise kõvaketta, kataloogide ja failidega. Ja skript, mis töötab oma andmetega, laadib teisi skripte, töötab tegelike FAILIDEGA, mis asuvad füüsilisel KETAL.

Just selles erinevuses peituvad raskused, millega algajad sageli kokku puutuvad.
Nad kaotavad failid, ajavad segi lingid failidega, pääsevad HTTP kaudu ligi kohalikele failidele või kaasavad faile veebiserveri juurtest.

Kuid peate lihtsalt selgelt mõistma kahte asja:
1. Eristage veebiserveri juurt, mida brauser näeb, ja kettal oleva failisüsteemi juurt.
2. Suhteliste ja absoluutsete teede erinevus.

Alustame teisest.
See on väga lihtne. Kui tee on määratud süsteemijuurest, on see absoluutne tee. See on nagu päriselus postiaadress – ükskõik kuhu lähed, aga täpse aadressiga leiad alati õige koha.
näited absoluutsetest teedest:
/var/www/site/forum/index.php
/img/frame.gif
saidilt:\windows\command.com

Unixi süsteemides ja veebisaitidel tähistatakse juurt kaldkriipsuga - "/".
See on tähtis. See pole lihtsalt kepp, vaid iseseisev AADRESS, tee.
Aadressil %20" target="_blank">http://www.site.ru/ viimane kaldkriips pole ilu pärast! See tähistab väga konkreetset aadressi – saidi algust.
Unixi süsteemides kettale võite sisestada ka “cd /” ja teid suunatakse juurkataloogi.
Windowsi süsteemides on failisüsteem jagatud ketasteks, seetõttu peab absoluutaadress näitama ketta nime. Windowsis pole kogu failisüsteemi absoluutset juurt, igal kettal on oma. Näiteks C:\E:\
Seetõttu, isegi kui Windowsi tee algab kaldkriipsuga, pole see absoluutne, vaid suhteline tee. Praeguse ketta suhtes. Ja absoluutne algab tähega.

Kui juur pole tee alguses määratud, on see tee suhteline ja see tuletatakse praegusest asukohast. Päriselus on see nagu tee viinapoe juurde – "kaks kvartalit vasakule ja kogu aeg otse." Sellele teele pääseb ainult kindlast punktist. Teisest satute hoopis teise kohta.
Lihtsaim näide suhtelisest teest on lihtsalt failinimi.
Kui fail asub samas kataloogis, millega programm töötab, leiab ta selle, lisades failinimele praeguse tee.
suhteliste teede näited:
file.php (fail on samas kaustas)
./file.php (fail asub samas kaustas. Mõnes Unixi süsteemis on mõnikord selline kirje vajalik)
images/picture.jpg (fail asub piltide kaustas, mis on praeguses kaustas)
../file.php (fail asub kaustas, mis asub praegusest ühe taseme võrra kõrgemal)
../../file.php (fail on kaustas, mis asub praegusest kaks taset kõrgemal)

Nii operatsioonisüsteem kui ka brauser koostavad suhtelise tee kohtades selle absoluutseks teeks. aga igaüks omal moel.

Liigume nüüd edasi esimese punkti juurde.
Erinevus veebiserveri juure, mida brauser näeb, ja ketta failisüsteemi juure vahel.
Üldiselt peaks eelmistest selgitustest kõik selge olema.
Kettal võib skriptifaili tee olla järgmine:
/var/www/site/forum/index.php
Samal ajal on selle skripti virtuaalne aadress brauseris vaadatuna:
%20" target="_blank">http://www.site.ru/forum/index.php
Selles näites on lihtne näha, kus kaks mõõdet ristuvad: kahel aadressil on ühine osa - /forum/index.php - ja see on segaduse põhjus.
Brauseri jaoks on see kõige täielikum tee, mis olla saab. See algab saidi juurest.
Serveris töötava skripti puhul on see vaid OSA teest.
skripti jaoks jääb tee /foorum/index.php olematuks - ketta juurtes pole foorumi kataloogi!
saidil /forum/index.php väljanägemise täieliku tee saamiseks peate vasakule lisama tee kausta, mida peetakse kogu veebiserveri juureks.
meie näites on see nii
/var/www/site
See tee on määratud veebiserveri konfiguratsioonis ja sisaldub PHP süsteemimuutujas $_SERVER["DOCUMENT_ROOT"]

Virtuaalses serveris - selles, mida kasutaja näeb - vastupidi, ketast pole. Seal on saidi juur. See tähendab, et mis tahes lingi toimimise tagamiseks, olenemata saidi kohast, kus seda kutsutakse, peab see olema absoluutne.
Kui teie veebisaidil on näiteks kaks jaotist:
%20" target="_blank">http://www.site.ru/about/info.php
Ja
%20" target="_blank">http://www.site.ru/job/vacancy.php
siis kui teete info.php failis lingi lihtsalt vacancy.php , siis brauser seda ei leia – ta otsib aadressi %20," target="_blank">http://www.site.ru/about/vacancy.php, lõpetades tee praegusest kataloogist.
Seetõttu peate kirjutama täieliku tee saidi juurtest - /job/vacancy.php
Kõik see kehtib muidugi mitte ainult siltide kohta
aga ka ja kõik muud, kus kasutatakse linke teistele failidele.

Lingid kohalikele aadressidele tuleks kirjutada ilma protokolli ja domeeni määramata - ainult tee saidi juurest - /job/vacancy.php. Lingid teistele saitidele tuleks kirjutada täielikult - %20." target="_blank">http://www.site1.ru/job/vacancy.php .

PHP pakub failide, kataloogide ja URL-idega töötamiseks palju tööriistu.

Konstant __FILE__ sisaldab praeguse käivitatava faili nime.
Erinevalt PHP_SELF-ist sisaldab see hetkel käivitatava faili nime.
disain tundub väga kasulik dirname (__FILE__), millega on soovitav asendada kõik kõned failidele, mis asuvad kutsuva skriptiga samas kataloogis. Näiteks:
nõuavad dirname (__FILE__). "/init.php"
Funktsioon dirname () koos baasnimega () on üks kõige sagedamini kasutatavatest failide ja kataloogidega töötamiseks.

Märge:
Kui teil on probleeme teedega skriptide ülekandmisel Windowsist Unixi süsteemi, pöörake kõigepealt tähelepanu tähtede kasutamisele. Unixi serverites on failinimes olevate tähtede suurtähtedel oluline, fail.txt ja fail.txt on kaks
erinevad failid, ja Windowsi all - sama. Parim on alati kirjutada failinimi täpselt, austades suur- ja suurtähte.