2012-03-02 24 views
34

¿Hay alguna forma en que pueda hacer eco de todo el contenido de un archivo .html en php?¿Cómo hacer eco de todo el contenido de un archivo .html en php?

Por ej. Tengo un archivo sample.html y quiero hacer eco de ese nombre de archivo, por lo que debería mostrarse su contenido.

+4

'Include' debería hacer.) O' readfile() '. – Vyktor

+0

posible duplicado de [Incluir todo el contenido de un archivo y repetirlo] (http://stackoverflow.com/questions/921479/include-whole-content-of-a-file-and-echo-it) – trejder

Respuesta

67

que puedes usar readfile():

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

Esto leerá el archivo y lo enviará al explorador con un comando. Esto es esencialmente lo mismo que:

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

excepto que file_get_contents() puede causar la secuencia de comandos para pasar archivos de gran tamaño, mientras que readfile() no lo hará.

+0

¿Hay alguna manera de que primero pueda verificar si ese archivo existe en la carpeta, y solo si lo hace, para ejecutar el comando anterior? –

+0

['file_exists()'] (http://php.net/file_exists) puede verificar si existe un archivo o directorio con ese nombre, y ['is_file()'] (http://php.net/is_file) se puede usar para verificar que exista un archivo * y sea un archivo regular *. En su caso, probablemente se use 'is_file()'. – Frxstrem

+0

Extraño, pero cuando cambio el archivo_get_contents en readfile, agrega 1191 en la parte inferior, y no tengo idea de dónde viene ese número :) ¿Alguna idea? –

9

sólo tiene que utilizar:

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

Eso hará eco de él también. Esto también tiene la ventaja de ejecutar cualquier PHP en el archivo,

Si necesita hacer nada con el contenido, use file_get_contents(),

por ejemplo,

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

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

?> 

Esto no ejecuta el código en ese archivo, así que ten cuidado si esperas que funcione.

que suelen utilizar:

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

como entonces me puedo mover archivos sin romper la incluye.

+0

Creo que se perdió el código real, Rich;) – joakimdahlstrom

+0

Gracias por la respuesta rápida :) ¿Me puede escribir un ejemplo, por favor? Edité mi pregunta. Gracias. PD No tiene ningún código después de: "Solo use:"? –

+1

¡Ah, se olvidó de sangrarlo correctamente! –

8

Si desea asegurarse de que el archivo HTML no contiene ningún código PHP y no se ejecutará como PHP, NO use include o require, Do simple:

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

Gracias. Funciona. Pero si ese archivo incluye, o referencias de alguna manera, otros archivos que necesita, esos no funcionarán, porque la ruta a ellos ahora es diferente. Todavía estamos en nuestro archivo principal. ¿Alguna forma de evitar esto? –

Cuestiones relacionadas