PHP Показать исходный код вместо файла .html

Извините, если название немного запутанно, но это моя проблема:
Мне нужно эхо-источник файла .html с помощью PHP. Я пробовал использовать PHP include (); в то время как расширения файла были .html.txt, но это выглядело так, как если бы оно было. Когда я напрямую обращаюсь к файлу, например «example.com/file.html.txt», он отображается как обычный .txt.
Это код PHP, который я использую для отображения файла:

<div> <?php include "../head.php"; $path = $_GET["p"]; ?> <div style="position:absolute; top:90px; padding-left:5px; padding-right:10px;"> <?php echo "<code>"; include("files/".$path); echo "</code>"; ?> </div> 

Надеюсь, я понятна! 🙂 Заранее спасибо за вашу помощь!

Не используйте include() , читайте содержимое файла и печатайте его (не забудьте сбежать).

В вашем случае $path – это пользовательский ввод, вы должны убедиться, что никакой секретный информатин не доступен. Использование basename($path); гарантирует, что обход каталога невозможен.

 <code> <?php // $path = basename($path); $html = file_get_contents("files/".$path); echo htmlspecialchars($html); ?> </code> 

Если вы хотите выводить HTML-теги в html-файле, используйте htmlspecialchars() для htmlspecialchars() специальных символов.

Я бы предложил обернуть его внутри текстового поля . Просто и быстро.

 echo "<textarea>"; include "/filename.txt"; echo "</textarea>"; 

Иногда, когда мы ищем что-то очень простое, мы упускаем из виду очевидное. : о)

если вы хотите видеть источник html в браузере, лучшим способом было бы запустить его через функцию htmlentities () или подобное. сложная часть получает содержимое файла include в строку, чтобы вы могли это сделать. для этого мы используем ob_start () и ob_get_clean (). они в основном запускают выходной буфер, затем получают содержимое выходного буфера, чтобы вы могли обработать его и повторить.

 <div> <?php include "../head.php"; $path = $_GET["p"]; ?> <div style="position:absolute; top:90px; padding-left:5px; padding-right:10px;"> <?php echo "<code>"; ob_start(); include("files/".$path); echo htmlentities(ob_get_clean()); echo "</code>"; ?> </div> в <div> <?php include "../head.php"; $path = $_GET["p"]; ?> <div style="position:absolute; top:90px; padding-left:5px; padding-right:10px;"> <?php echo "<code>"; ob_start(); include("files/".$path); echo htmlentities(ob_get_clean()); echo "</code>"; ?> </div> 

Включить не безопасно. Если в вашем файле есть PHP-код, он будет выполнен. Вы должны использовать это:

 echo htmlspecialchars(file_get_contents('yourfile.html'));