2010-11-22 14 views
6

Ciao c'è un modo per prendere il contenuto di un file php durante l'elaborazione del codice php in esso? Ho bisogno di includere un codice in un'altra pagina, ma ho bisogno di stampare il contenuto in una posizione specifica.file_get_contents e codice php

Se io uso include il codice verrà stampato prima del tag html, naturalmente, causa che viene elaborato prima della pagina, ma se uso file_get_contents il contenuto è preso nella pagina ma se ho dei tag php otterrò quelli anche come testo normale.

Grazie.

EDIT: scusate ragazzi sembra che fossi ubriaco mentre stavo scrivendo. Ho corretto.

Ho un motore che elabora i contenuti della pagina, li inserisce in una variabile e li stampa in una posizione specifica all'interno della pagina html. Nel motore ho bisogno di "incorporare" il codice di altre pagine "statiche" che potrebbero avere alcuni tag php. Se uso file_get_contents otterrò il contenuto in testo semplice (con tag php non analizzati) se lo uso include semplicemente non funzionerà perché non è la funzione per esso. Quindi, quello di cui ho bisogno è di incorporare il codice PROCESSED nel motore (come HTML pronto per essere stampato).

+3

Può chiarire cosa esattamente si vuole e perché un 'include()' utilizzando un percorso del file system non funzionerà per voi? Non capisco. –

+0

Puoi riformulare? Non capisco davvero cosa stai dicendo. – robbrit

+0

Grazie per il chiarimento. Ho assunto correttamente nella mia risposta. – ceejayoz

risposta

22

È possibile utilizzare un output buffer per includere un file PHP, ma salvare l'output risultante per un uso futuro anziché stamparlo immediatamente nel browser.

ob_start(); 
include('path/to/file.php'); 
$output = ob_get_contents(); 
ob_end_clean(); 

// now do something with $output 
+1

Non è sicuro che sia ciò di cui ha bisogno, visto che * sembra * volere il codice sorgente PHP ... Non chiaro * cosa * ha bisogno –

+0

Dice "se uso file_get_contents il contenuto è preso ma se ho dei tag php Otterrò anche quelli come testo normale ", che indica che questo è ciò che sta cercando di fare. – ceejayoz

+0

Ho letto quella parte in modo diverso ma penso che tu abbia ragione –

-1

tua domanda non è chiaro al 100%, ma sembra che si desidera includere una fonte php remoto, è possibile utilizzare includere ("http://domain.com/path/to/php.phps"); invece di un file_get_contents.

Hai detto che hai solo bisogno di una parte del codice remoto, se è così, puoi usare i file_get_contents, ottenere questa parte del codice con substr o reg exp save su un file locale e includere o fare una valutazione.

Nessuna delle soluzioni è sicura o consigliata, non è necessario includere file remoti per la valutazione diretta del codice.

-1

Se ho capito bene; stai cercando di caricare un file php per leggerne il contenuto ed eseguirlo allo stesso tempo.

cioè: include('/foo/bar') e file_get_contents('/foo/bar')

La seguente funzione fa entrambe e restituisce il contenuto del file ammesso che esista.

function load_and_process($path) { 
    if(file_exists($path) { 
     include($path); 
     return file_get_contents($path); 
    } 
    return false; 
} 

e chiamarlo in questo modo:

if($file_contents = load_and_process('/foo/bar')) { 
    echo "Loaded $file_contents from /foo/bar"; 
} 
Problemi correlati