Discussione:
path relativi e path assoluti
(troppo vecchio per rispondere)
Sillaba
2004-10-20 12:30:41 UTC
Permalink
Quando utilizzo funzioni php come il require() mi trovo ad utilizzare path
relativi (ad esempio "../../mydir/nomefile.php").

Vorrei utilizzare path relativi al site root ma non funzionano (ad esempio
"/mydir/nomefile.php").

Come posso risolvere rendendo il mio sito portabile e evitando errori nel
caso di spostamento dei file?
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Magilla il gorilla lilla
2004-10-20 12:42:10 UTC
Permalink
Post by Sillaba
Come posso risolvere rendendo il mio sito portabile e evitando errori nel
caso di spostamento dei file?
Se sposti i file devi aggornare i path, relativi o assoluti che siano, a
meno che non li metti nell'include path (che varia in base alle
impostazioni del php.ini o via
http://it.php.net/manual/it/function.ini-set.php o via htaccess o
configurazione di apache). Ma se per sbaglio li metti da qualche altra
parte devi comunque correggere da qualche parte (del resto se di errore
si tratta...)
--
Spoken: How much is that gorilla in the window?
Take our advice, At any price, A gorilla like Magilla is mighty nice.
Gorilla, Magilla Gorilla for sale
Sillaba
2004-10-20 12:54:47 UTC
Permalink
Post by Magilla il gorilla lilla
Post by Sillaba
Come posso risolvere rendendo il mio sito portabile e evitando errori nel
caso di spostamento dei file?
Se sposti i file devi aggornare i path, relativi o assoluti che siano, a
meno che non li metti nell'include path (che varia in base alle
impostazioni del php.ini o via
http://it.php.net/manual/it/function.ini-set.php o via htaccess o
configurazione di apache). Ma se per sbaglio li metti da qualche altra
parte devi comunque correggere da qualche parte (del resto se di errore
si tratta...)
Sono d'accordo, ma se si usa il path relativo al Site root si possono
spostare su qualsiasi macchina basta che non si spostano di directory.

Se indico un file come "/mydir/myfile.php" sto ad indicare che prima dello
slash c'e' solo l'host con la porta. Quale e' il vantaggio? E' che se
richiamo un file non devo calcolare il percorso (directory da risalire e
da discendere) ma basta conoscere il path del file.
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Magilla il gorilla lilla
2004-10-20 13:35:23 UTC
Permalink
Post by Sillaba
Sono d'accordo, ma se si usa il path relativo al Site root si possono
spostare su qualsiasi macchina basta che non si spostano di directory.
Se indico un file come "/mydir/myfile.php" sto ad indicare che prima dello
slash c'e' solo l'host con la porta. Quale e' il vantaggio? E' che se
richiamo un file non devo calcolare il percorso (directory da risalire e
da discendere) ma basta conoscere il path del file.
Continuo a non vederci un reale vantaggio. Forse perché non ho mai avuto
bisogno di pormi il problema, nel caso penso che proverei settando un
include_dir a livello di impostazione tramite .htaccess o utilizzerei
set_include_path (o ini_set), e non dovrei nenche conoscere il path
assoluto del file ma solo il nome.

Ciao
--
Spoken: How much is that gorilla in the window?
Take our advice, At any price, A gorilla like Magilla is mighty nice.
Gorilla, Magilla Gorilla for sale
LuigiZ
2004-10-21 06:30:52 UTC
Permalink
Post by Sillaba
Se indico un file come "/mydir/myfile.php" sto ad indicare che prima dello
slash c'e' solo l'host con la porta. Quale e' il vantaggio? E' che se
richiamo un file non devo calcolare il percorso (directory da risalire e
da discendere) ma basta conoscere il path del file.
Io uso $_SERVER['DOCUMENT_ROOT']."/mydir/myfile.php" oppure creo una
costante ROOT_PATH
che modifico in un file di configurazione una volta per tutte e la
adatto ad ogni path imposta.

Luigi

Innuendo
2004-10-21 06:19:33 UTC
Permalink
Post by Sillaba
Quando utilizzo funzioni php come il require() mi trovo ad utilizzare path
relativi (ad esempio "../../mydir/nomefile.php").
Vorrei utilizzare path relativi al site root ma non funzionano (ad esempio
"/mydir/nomefile.php").
Come posso risolvere rendendo il mio sito portabile e evitando errori nel
caso di spostamento dei file?
Io faccio cosi:
ho un file che si chiama path.php che fantasia eh :-) dentro al quale ho
<?php
$site_root = '/var/www/htlm/web';
$classi = $site_root.'/classi';
$img = $site_root.'/img';
$templates = ...
eccetera eccetera
?>

Poi includo questo file all'inizio di ogni script e i successivi
include/require li faccio come

<?php
require_once ('path.php');
require_once ($img.'/foto.jpg');
require_once ($classi.'/foo.class');
...
?>

In questo modo se devo cambiare qualche dir modifico un solo file e non
ci sono problemi

ciao
Mauro
Loading...