Vánoční nadílka Vánoční nadílka
Vánoční akce! Daruj lepší budoucnost blízkým nebo sobě. Až +50 % zdarma na dárkové poukazy. Více informací

Diskuze: Jak udělat aby file_get_contents bral cestu od souboru s funkcí a ne od souboru kde se funkce volá?

PHP PHP Jak udělat aby file_get_contents bral cestu od souboru s funkcí a ne od souboru kde se funkce volá? American English version English version

Aktivity (1)
Avatar
Matěj Strnad:18. září 15:26

Chci načíst

/1/2/3/soubor.txt

A funkce je tu:

/1/2/funkce.php

A pužiji

file_get_contents('./3/soubor.txt');

A to nefunguje a musím použít:

file_get_contents('./2/3/soubor.txt);

protože soubor který tu funkci volá je ve složce 1.
Jak mám udělat aby stačilo

file_get_contents('./3/soubor.txt');

?
Snad to někdo pochopil :)

Odpovědět 18. září 15:26
Ty vaše internety!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:19. září 8:48

Nepochopil?
pro cesty se pouzivaji tyto varianty, v linuxu:

/ = root / home
./ = aktualni slozka
../ = slozka o uroven vys
/var/www/html/neco/neco - kompletni cesta

Pokud mas v nastaveni apache zadano, ze home directory je
/ = /var/www/html­/neco/neco - kompletni cesta
pak lze vsechny cesty zkratit na
/stranka.htm

No, ve tvem pripade nepises, co vlastne resis, takze ti nelze odpovedet. Tipnu si, ze include. Include vklada soubor do kodu podle cesty aktualne spusteneho souboru. Cili, pokud mas strukturu

/1/2/3/soubor.txt
/1/2/3/soubor.php
/1/2/funkce.php

Pak muzes pro include pouzivat

--- /1/2/3/soubor.php --- (aktualni soubor a slozka)
include '/1/2/3/soubor.txt'
include '/1/2/3/soubor.php' -- coz se zacykli, ale jen pro ukazku
include '/1/2/funkce.php'

--- /1/2/3/soubor.php ---
include 'soubor.txt'
include 'soubor.php' -- coz se zacykli, ale jen pro ukazku
include '../funkce.php'

--- /1/2/3/soubor.php ---
include './soubor.txt'
include './soubor.php' -- coz se zacykli, ale jen pro ukazku
include './../funkce.php'

Nebo, kteroukoliv z tech kombinaci, ruzne promichanou.
Pouzivat '/' na zacatku neni prilis vhodne, pokud chces web zprovoznovat na free hostingu. Tam obvykle nemusi byt homedir nastaveny na tvou slozku, ale obecne na www, takze ti vsechny cesty pujdou k sipku. Lepsi je vzdy cestu skladat

include $home.'../funkce.php'

No, ale to muze vest zase trosku k problemum, pokud budes mit ty php ruzne rozhazene po slozkach, ze budes muset v kazdem opravovat pri nove kopii cesty. Jakoze
/1/2/3/soubor.php zkopirujes do
/1/2/3/4/soubor.php a ted bde treba opravit cesty k config.php, function.php a pod.
Ale tomu se asi stejne nevyhnes.

 
Nahoru Odpovědět 19. září 8:48
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Matěj Strnad
Daniel Vítek:19. září 9:19

_ index.php
_ folder
|_ script.php
|_ soubor.txt

index.php

require('folder/script.php');

folder/script.php

file_get_contents(__DIR__ . '/soubor.txt');
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 19. září 9:19
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
Odpovídá na Daniel Vítek
Matěj Strnad:19. září 15:27

Funguje, dík :)

Nahoru Odpovědět 19. září 15:27
Ty vaše internety!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.