2012-03-02 16 views
34

Esiste un modo per riprodurre l'intero contenuto di un file .html in php?Come riprodurre l'intero contenuto di un file .html in php?

Ad es. Ho un file sample.html e voglio echo quel nome di file, quindi il suo contenuto dovrebbe essere visualizzato.

+4

'Include' dovrebbe fare.) O' readfile() '. – Vyktor

+0

possibile duplicato di [Includi tutto il contenuto di un file ed echo it] (http://stackoverflow.com/questions/921479/include-whole-content-of-a-file-and-echo-it) – trejder

risposta

67

si dovrebbe usare readfile():

readfile("/path/to/file"); 

Questo leggerà il file e lo invierà al browser in un unico comando. Questo è essenzialmente lo stesso di:

echo file_get_contents("/path/to/file"); 

salvo che file_get_contents() può causare lo script per dormire per file di grandi dimensioni, mentre readfile() non lo faranno.

+0

Esiste un modo per verificare innanzitutto se quel file esiste nella cartella e solo se lo fa, per eseguire il comando precedente? –

+0

['file_exists()'] (http://php.net/file_exists) può controllare se esiste un file o una directory con quel nome e ['is_file()'] (http://php.net/is_file) può essere usato per verificare che esista un file * ed è un file normale *. Nel tuo caso, probabilmente dovresti usare 'is_file()'. – Frxstrem

+0

Strano, ma quando cambio i file_get_contents in readfile, aggiunge 1191 in fondo, e non ho idea da dove provenga quel numero :) Qualche idea? –

9

Basta usare:

<?php 
    include("/path/to/file.html"); 
?> 

che risuonano come bene. Questo ha anche il vantaggio di eseguire qualsiasi PHP nel file,

Se avete bisogno di fare qualsiasi cosa con il contenuto, usare file_get_contents(),

esempio

<?php 
    $pagecontents = file_get_contents("/path/to/file.html"); 

    echo str_replace("Banana", "Pineapple", $pagecontents); 

?> 

Questo file non esegue il codice in quel file, quindi fai attenzione se pensi che funzioni.

Io di solito uso:

include($_SERVER['DOCUMENT_ROOT']."/path/to/file/as/in/url.html"); 

come allora posso spostare i file senza rompere la comprende.

+0

Penso che tu mancato il vero codice, Rich;) – joakimdahlstrom

+0

Grazie per la rapida risposta :) Puoi scrivermi un esempio, per favore? Ho modificato la mia domanda. Grazie. Post scriptum Non hai il codice dopo: "Basta usare:"? –

+1

Ah, ho dimenticato di indentarlo correttamente! –

8

Se si vuole assicurarsi che il file HTML non contiene alcun codice PHP e non verrà eseguito come PHP, NON usare include o require, semplice fai:

echo file_get_contents("/path/to/file.html"); 
+0

Grazie. Funziona. Ma se quel file include, o riferimenti in qualche modo altri file di cui ha bisogno, quelli non funzioneranno, perché il percorso per loro è ora diverso. Siamo ancora sul nostro file principale. Un modo per aggirare questo? –

Problemi correlati