Newsgroup: it.comp.www.php
Titolo: Path assoluti e require

Salve ng.
Dopo lunghe prove e ricerhe sul web,mi affido a voi visto che non riesco
proprio ad uscirne.
Sono in locale e ho bisogno di creare path assoluti.
Ho creato un file path.php che ha il seguente codice:
path.php
--------
<? 
$mypath=dirname(__FILE__);
define(ROOT_PATH, $mypath); 
?>
Faccio quindi un require path.php nelle mie pagine e costruisco i link
con <?=ROOT_PATH;?>. Ad esempio per un'immagine
<img src="<?=ROOT_PATH;?>/images/pippo.gif" />
Perfetto. Fin qui tutto funziona.
Adesso supponiamo che voglia mettere l'immagine in un file immagine.php
e voglia includerlo nel mio file principale. Avrei quindi:
index.php
<? 
require "./path"; 
require "<?=ROOT_PATH;?>/immagine.php;
?>
immagine.php
<img src="<?=ROOT_PATH;?>/images/pippo.gif" />
In questo modo l'immagine non è più visibile nonostante il riferimento
src dell'immagine che compare nel codice html generato sia corretto.
Come mai?
Come faccio a creare riferimenti assoluti validi anche per file inclusi?

 Come mai?
Perche' non hai capito che i path assoluti dei require sono relativi al
file system mentre quelli utilizzati all'interno dell'HTML DEVONO
essere relativi o assoluti ma riferiti alla document root.
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

 essere relativi o assoluti ma riferiti alla document root.
Ok. Ripeto però che anche se mi riferisco alla document root il risultato
non cambia.
Il mio obiettivo è costruire un header e un footer che includo nelle mie
pagine web e che siano validi per quasiasi pagina e in qualsiasi cartella.
Tutto qui.
Thanks.
Luca

Credo di aver risolto nel modo più semplice.
nel mio path.php ho
<? 
	$root="
http://localhost/miacartella/
"; 
	$mypath=dirname(__FILE__)."/";
	define(ROOT_PATH, $mypath); 
?>
in tutti i miei file ho:
<?require "./path.php";?> //questo riferimento è l'unico che cambia di
cartella in cartella
<base href="<?=$root;?>" />
A volte mi dimentico dell'utilità del banale html...
Luca

 cartella.  Tutto qui.
E allora come gia' detto UTILIZZA un URI assoluto come questo:
<img src="/images/pippo.gif" />
P.S.
Se hai questi dubbi dovresti smettere di programmare in PHP e
cominciare dalle basi di HTML, con questo tipo di lacune non riuscirai
ad arrivare da nessuna parte.


 cartella in cartella
Ed appena vorrai includere da un'altra cartella un file che contiene
questa dicitura ti ritroverai nuovamente d'accapo.


 
non credo che includerò mai un file che contiene questa dicitura.
Non avrò capito io, ma come posso capire come richiamare in  modo assoluto
path.php? Chi glielo dice in quale sottocartella mi trovo? Chi me lo dice se
devo usare:
require (dirname(__FILE__)."/path.php");
require (dirname(dirname(__FILE__))."/path.php");
require (dirname(dirname(dirname(__FILE__)))."/path.php");
Luca
P.S. Da "grande" non voglio fare il programmatore e credo si veda. Ho altri
progetti più interessanti.

 assoluto path.php?
Cerca sul manuale il significato di __FILE__ e di dirname().


 Cerca sul manuale il significato di __FILE__ e di dirname().
l'avevo già cercato, ma non mi ha aiutato a trovare la soluzione.
Cmq, non capisco perchè tu spesso aiuti a metà. Io consulto sempre google e
manuale prima di postare e non per 2 minuti ma per una giornata sana di lavoro.
Se scrivo è perchè ho bisogno di una mano non perchè qualcuno mi dica "guarda il
manuale". Forse giro attorno ad una banalità che potrebbe essere risolta in un
attimo, ma cmq ora non la vedo.
Ti ringrazio cmq per l'aiuto costruttivo che mi hai dato nei precedenti post.
Luca

 l'avevo già cercato, ma non mi ha aiutato a trovare la soluzione.
Quale e' il significato di __FILE__?
Quale e' il significato di dirname()?
Quale e' il significato di dirname(__FILE__)?
Quale e' il significato di require(dirname(__FILE__) . '/file.php')?
E' difficile pensare tu non sia in grado di rispondere a queste domande.
