Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - 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á?

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Neaktivní uživatel:18.9.2018 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.9.2018 15:26
Neaktivní uživatelský účet
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:19.9.2018 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.9.2018 8:48
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:19.9.2018 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í
+2,50 Kč
Řešení problému
Nahoru Odpovědět
19.9.2018 9:19
Neaktivní uživatelský účet
Avatar
Nahoru Odpovědět
19.9.2018 15:27
Neaktivní uživatelský účet
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.