2014-04-25 9 views

risposta

44

L'avviso viene generato perché si sta utilizzando un URL completo per il file che si sta includendo. Questo NON è il modo giusto perché in questo modo otterrai del codice HTML dal server web. Usa:

require_once('../web/a.php'); 

in modo che webserver può eseguire lo script e fornire la sua uscita, invece di servire il codice sorgente (il vostro caso corrente che conduce al avvertimento).

6

Devi inserire il percorso del file. Per esempio:

require_once('../web/a.php'); 

Non è possibile ottenere il file per richiedere da internet (con protocollo http) è limitato. I file devono essere sullo stesso server. Con la possibilità di vedere ogni altri (diritti)

Dir-1 - 
     > Folder-1 -> a.php 
Dir-2 - 
     > Folder-2 -> b.php 

To include a.php inside b.php => require_once('../../Dir-1/Folder-1/a.php'); 
To include b.php inside a.php => require_once('../../Dir-2/Folder-2/b.php'); 
+0

so che .. ma cosa succede se voglio includere stesso file in due directory .. come file 'a.php' è posto a DIR 1 e ora voglio includerlo nel file DIR 3. e un file con 'a.php' da dir 3 è incluso in uno dei file dir 1 ... quindi dà errori' a.php' non esiste – Gags

+0

Mostrami la struttura della directory. Senza di esso è difficile per me aiutare. – SoftGuide

+0

è Directory 1 -> Cartella 1 -> a.php e Directory 2 -> Cartella 2 -> b.php [ha require_once ('../../ a.php')] .. ora quando includo b.php in uno dei file in Directory 1, allora mi viene un errore che a.php non esiste che è vero secondo la struttura di directory – Gags

15

Ho avuto lo stesso errore durante il tentativo di includere un file PHP nel mio tema Wordpress. Sono stato in grado di aggirare il problema facendo riferimento al nome del file utilizzando dirname(__FILE__). Non ho potuto utilizzare percorsi relativi poiché il mio file sarebbe stato incluso in diversi punti del tema, quindi qualcosa come require_once '../path-to/my-file' non funzionava.

Sostituire require_once get_template_directory_uri() . '/path-to/my-file' con require_once dirname(__FILE__) . '/path-to/my-file' ha fatto il trucco.

+0

Questo può funzionare nei casi in cui il require_once può essere valutato in seguito, in quanto sembra non farlo nella fase di pre-compilazione, ma successivamente nella fase di valutazione della funzione. Nei casi in cui è necessario richiedere il file prima che venga richiesto un altro file senza l'uso della chiamata dirname() (in un tema principale, ad esempio), impedisce a qualsiasi opportunità di valutare il file prima ... Almeno questo sembra essere il caso dei server WordPress. –

10

tenta di utilizzare

<?php require_once($_SERVER['DOCUMENT_ROOT'].'/web/a.php'); ?> 
+0

Grazie. Questa risposta mi ha dato esattamente quello di cui avevo bisogno per una domanda simile. –

0
require_once('../web/a.php'); 

Se questo non funziona per nessuno, che segue è la buona idea di includere il file in qualsiasi parte del progetto.

require_once dirname(__FILE__)."/../../includes/enter.php"; 

Questo codice otterrà il file dalla directory 2 all'esterno della directory corrente.

0
require_once(APPPATH.'web/a.php'); 

ha lavorato per me in codeigniter

controllo reference

Problemi correlati