Originariamente inviato da fpochet
Ciao a tutti,
quando includo un file incluso in un altro file quale path devo utilizzare?

Esempio:
struttura:
A.php
inc/B.php
inc/C.php
fun/D.php

A include B
B include C e D

In A metto
require('inc/B.php');

In B includo con:
require('inc/C.php');
require('../fun/D.php');

e non va!
Il corretto è:
require('inc/C.php');
require('fun/D.php');

Perchè? Qual'è la logica dietro l'inclusione??

Grazie a tutti
Il punto principale è: qual è lo script ke esegui? Ti spiego. Quando tu esegui una pagina .php la directory di lavoro è quella in cui c'è il file attualmente in esecuzione. Quindi se tu esegui:

http://www.tuosito.it/A.php

la directory di lavoro sarà quella in cui si trova A.php
Ora tu in A hai:
require('inc/B.php');

la directory di lavoro è ancora quella in cui si trova A e non si è spostata nella directory inc/


Infatti tu fai:

In B includo con:
require('inc/C.php');

Se la directory di lavoro si fosse spostata in inc/ avresti dovuto fare semplicemente:

require('C.php');

ma il problema è ke ti trovi nella cartella superiore!

Tale dicitura
require('C.php');

andava bene se avresti fatto:

http://www.tuosito.it/inc/B.php

Alla luce di tutto ciò, quindi puoi capire come

In B includo con:
require('inc/C.php');
require('../fun/D.php');

dia errore require('../fun/D.php'); appunto perché ti trovi nella directory di A.php e per accedere a D.php devi fare require('fun/D.php');

Spero di essere stato chiaro.