web-dev-qa-db-fra.com

Comment faire écho à l'ensemble du contenu d'un fichier .html en php?

Existe-t-il un moyen de faire écho à l'ensemble du contenu d'un fichier .html dans php?

Par exemple J'ai un fichier sample.html, et je veux faire écho à ce nom de fichier afin que son contenu soit affiché.

46
Nikola Nastevski

Vous devriez utiliser readfile() :

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

Cela lira le fichier et l’enverra au navigateur en une seule commande. C'est essentiellement la même chose que:

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

sauf que file_get_contents() peut provoquer le blocage du script pour les fichiers volumineux, alors que readfile() ne le fera pas.

82
Frxstrem

Il suffit d'utiliser:

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

Cela fera écho aussi. Cela a aussi l’avantage d’exécuter n'importe quel PHP dans le fichier,

Si vous devez faire quelque chose avec le contenu, utilisez file_get_contents (),

par exemple.

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

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

?>

Cela n'exécute pas le code dans ce fichier, soyez donc prudent si vous vous attendez à ce que cela fonctionne.

J'utilise habituellement:

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

comme alors je peux déplacer des fichiers sans casser l'inclus.

13
Rich Bradshaw

Si vous voulez vous assurer que le fichier HTML ne contient pas de code PHP et ne sera pas exécuté en tant que PHP, n'utilisez pas include ou require. simple faire:

echo file_get_contents("/path/to/file.html");
8
Not_a_Golfer