Ahojte,
Nevím jestli to teď dobře vysvětlím co přesně potřebuju ale zkusím to. V příloze jsou dva obrázky. Na jednom je znázorněno umístění souborů - konkrétně pastviny.php a menu.php a na druhém je část kodu v menu.php. Soubor menu.php includuju v pastviny.php a dalších.menu.php je takové univerzální menu pro všechny.a jde mi o to jestli se to nedá vyřešit nějak jinak než absolutní adresou. Mám víc souborů v různém vnoření podobných pastviny.php. Nevím jak to vymyslet aby v souboru menu.php byli univerzální cesty ke všem ostatním. Jestli to jde teda jinak než absolutně. Potřebuju aby to co je v menu bylo přístupné v každém souboru podobném pastviny.php.
Nevím totiž přesně jak to funguje. Jestli se cesta hledá od menu.php, nebo až od toho php kde je to includováno.
cesta v menu.php, include
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: cesta v menu.php, include
co ti vadí na absolutním odkazu?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
- Ellrohir
- nováček
- Příspěvky: 49
- Registrován: prosinec 11
- Bydliště: Praha
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: cesta v menu.php, include
CZechBoY: hm...co třeba přesun webu na jinou doménu bez nutnosti prolejzat kód a opravovat linky?
preclik: hint, který by měl tohle vyřešit - dvě tečky ".." značí "rodičovský adresář" (ono to v těch total commanderech a salamandrech není "jen tak" :)) - pomocí tohohle můžeš skákat o libovolně úrovní výš
takže v tvém případě (pokud se dobře dívám)
druhá možnost - ale vcelku zbytečná, když jde tohle - by byla pamatovat si někde v jedný php proměnný současnou kořenovou adresu webu a pak každou adresu psát relativně od kořene a přidat před ní tuhle php proměnnou a tím dostat sice absolutní cestu, ale editovatelnou jednou změnou hodnoty php proměnný
tak jsem to dělal, dokud jsem se nedozvěděl o kouzelných dvou tečkách 
preclik: hint, který by měl tohle vyřešit - dvě tečky ".." značí "rodičovský adresář" (ono to v těch total commanderech a salamandrech není "jen tak" :)) - pomocí tohohle můžeš skákat o libovolně úrovní výš

takže v tvém případě (pokud se dobře dívám)
Kód: Vybrat vše
a href="../pastviny/pastviny-jaro-2009/pastviny.php"
druhá možnost - ale vcelku zbytečná, když jde tohle - by byla pamatovat si někde v jedný php proměnný současnou kořenovou adresu webu a pak každou adresu psát relativně od kořene a přidat před ní tuhle php proměnnou a tím dostat sice absolutní cestu, ale editovatelnou jednou změnou hodnoty php proměnný


"Zprávy mají velikost, třeba i nulovou, a mají nějaký význam, třeba i žádný."
Re: cesta v menu.php, include
Pokud chceš mít v nějaké proměnné úplnou cestu k startovacímu scriptu, tak použij třeba toto (používal jsem to ve všech svojich webových aplikacích):
$v_server_url = $SERVER_URL;
$v_path_info = $PATH_INFO;
$v_path1 = strrchr($v_path_info,'/');
$v_path = substr($v_path_info,0,strlen($v_path_info) - strlen($v_path1) +1);
$v_app_path = $v_server_url.$v_path;
$v_server_url = $SERVER_URL;
$v_path_info = $PATH_INFO;
$v_path1 = strrchr($v_path_info,'/');
$v_path = substr($v_path_info,0,strlen($v_path_info) - strlen($v_path1) +1);
$v_app_path = $v_server_url.$v_path;
Potřebujete jinou pomoc při řešení problému ve Windows 10? Stáhněte si soubor Win10-finty.
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: cesta v menu.php, include
nechápu jak může bejt problém při změně domény..
mám <a href="/wtf/cs/hej/gej/popis.php">x</a> na doméně wtf.tld a chci přemístit na xD.tld tak to snad pude ne? mám vyzkoušeno jen na 10 doménách tak nevim no
mám <a href="/wtf/cs/hej/gej/popis.php">x</a> na doméně wtf.tld a chci přemístit na xD.tld tak to snad pude ne? mám vyzkoušeno jen na 10 doménách tak nevim no
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
- Ellrohir
- nováček
- Příspěvky: 49
- Registrován: prosinec 11
- Bydliště: Praha
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: cesta v menu.php, include
co třeba proto, že tohle ti nesežere skript, kterej není umístěnej v kořenovým adresáři? protože bude tu relativní cestu brát "od sebe"
"Zprávy mají velikost, třeba i nulovou, a mají nějaký význam, třeba i žádný."
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: cesta v menu.php, include
s lomítkem na začátku asi těžko..
UTFG
UTFG
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
- Ellrohir
- nováček
- Příspěvky: 49
- Registrován: prosinec 11
- Bydliště: Praha
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: cesta v menu.php, include
copak UTFG...já si na to dokonce pustil Apache a napsal zkusmo skripty, abych si ověřil svou "teorii" než jsem to postnul sem...jenže jsem si neuvědomil, že jsem ty skripty dal o adresář níž než do kořene
takže už neříkám nic...radši 


"Zprávy mají velikost, třeba i nulovou, a mají nějaký význam, třeba i žádný."
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: cesta v menu.php, include
tak je rozdíl taky Windows a Linux víš.. linux cesty vždycky začínají lomítkem, windows cesty zase začínají písmenem jednotky
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: cesta v menu.php, include
Luboš píše:Pokud chceš mít v nějaké proměnné úplnou cestu k startovacímu scriptu, tak použij třeba toto (používal jsem to ve všech svojich webových aplikacích):
$v_server_url = $SERVER_URL;
$v_path_info = $PATH_INFO;
$v_path1 = strrchr($v_path_info,'/');
$v_path = substr($v_path_info,0,strlen($v_path_info) - strlen($v_path1) +1);
$v_app_path = $v_server_url.$v_path;
díky a co to přesně znamená.jestli by nebyl nějakej popis ať si to tam nehodím a nevím vlastně co to dělá..jako absolutní adresa mi nevadí ale chtěl jsem to pořešit nějak líp.jestli by nebyl třeba nějakej skript kterej by zjistil tu absolutní adresu po něco.třeba _skript_/fotky/pastviny/pastviny.php.._skript_/pastviny/2009/pastviny.php....nemůžu to dát relativně protože tu cestu to bere zřejmě od toho souboru kde je to includovano a vždycky to není třeba ../../ ale ../../../ více vnořeno.takže by to menu pak nepasovalo na všech stránkách, kde by bylo zobrazený.
Re: cesta v menu.php, include
CZechBoY píše:tak je rozdíl taky Windows a Linux víš.. linux cesty vždycky začínají lomítkem, windows cesty zase začínají písmenem jednotky
Tohle bych ještě rozvedl. Kdysi dávno ve Windows jsem měl disk rozdělený na oddíly, takže byl zvlášť systém a zvlášť data. Dnes už celkem běžná věc, ale ve Win98 se to ještě moc nedělalo

Dokumenty jsem měl také přesměrované na to Déčko, a v nich adresář Web, kde jsem si dělal stránky. Pro příklad dejme tomu potřebuji udělat odkaz na soubor, který je v adresáři Temp na Céčku. Ve Windows by ty cesty vypadaly takhle:
D:\Dokumenty\Web\mmm\index.html
C:\Temp\pokusy\obrazek.jpg
Asi si dovedeš představit jak velké přepisování by znamenala jakákoliv větší úprava těch stránek, třeba při přesunu některých souburů do lepšího umístění.
Windows tenhle způsob podědil z DOSu, a ten to zase obšlehl z CP/M ze sedmdesátých let, kdy jsi měl jednu velkou bednu s osmibitovým počítačem s výkonem menším než má tvoje dnešní klávesnice (a operační pamětí "velkou" jen pár desítek kilobajtů), a každá disketová jednotka byla extra bedna připojená extra kabelem (maximálně čtyři). Aby se nepletly, označovaly se buď čísly nebo písmeny. Prostě středověk.
Naštěstí už pár desetiletí před Windowsem (a také před tím CP/M) mnohem chytřejší lidé vymysleli Unix, kde na to šli logicky, tím pádem úplně opačně. Použili jediný adresářový strom začínající kořenem / (nazvaným root), a disky a všechna další úložiště do něj prostě připojili jako větve-adresáře.
Takže když jsem jednoho dne konečně nainstaloval Linux a starý disk použil jako sekundární, měl jsem stará data na těchhle cestách:
/media/hdb2/Dokumenty/Web/mmm/index.html
/media/hdb1/Temp/pokusy/obrazek.jpg
Když se podíváš na URL jakéhokoliv webu, máš tam něco jako http://mujweb.com/, a právě to lomítko na konci je kořen tvého adresářového stromu, z nějž můžeš vypsat absolutní adresu bez ohledu na to, v jak hluboce zanořeném podadresáři se ten obsah nachází! Název serveru nebo webu v tu chvíli vůbec k ničemu nepotřebuješ.
Takže pokud z té mojí stránky na adrese /media/hdb2/Dokumenty/Web/mmm/ budu odkazovat na obrázek umístěný sice fyzicky na jiném disku, ale logicky jen v jiné adresářové větvi, můžu použít buď relativní cestu vycházející z aktuálního adresáře:
../../../../hdb1/Temp/pokusy/obrazek.jpg
a nebo absolutní cestu vycházející z kořene:
/media/hdb1/Temp/pokusy/obrazek.jpg
Záleží co se ti líbí víc, nebo co bude kratší, nebo spíš přehlednější. Přitom ta první možnost by se ve Windows vůbec nedala udělat, právě kvůli umístění na jiném disku, zatímco tomuhle systému je úplně jedno ve které škatuli na kterém kolečku se ta data vrtí, protože se dá tímhle způsobem odkazovat odkudkoli kamkoli.
V původním DOSu dokonce adresáře vůbec nebyly, jen dvě disketové jednotky! Všechno ostatní co tam postupně přidávali je okopírované nebo nepříliš dobře napodobené podle Unixu.
Jen pro zajímavost, v unixových systémech je jako adresář nebo soubor připojené úplně všechno, nejen disky, ale také zvuková nebo grafická karta, klávesnice, generátor náhodných čísel, a ve speciálních adresářích najdeš třeba soubor obsahující celou operační paměť, a dokonce i procesor! To ale neznamená že by byly někde uložené, jen se tak zobrazují.
Kromě toho adresáře se také považují za soubory. Prostě, všechno je soubor...

"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: cesta v menu.php, include
tak jasně že je rozdíl Win a Linux, ale existuje server Apache, kterej umí miliony nastavení na přepisy a nějakej "programátor či webdesigner" nepotřebuje vědět jaký všechny disky jsou v tom serveru
už vidim jak na webu je odkaz C:\web\index.html
to je prostě blbost
už vidim jak na webu je odkaz C:\web\index.html

PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů