Я пытаюсь показать результат рендеринга, брошенный файлом PHP, в виде текста.
Текст также должен содержать теги HTML.
Что-то вроде того, что вы получите, когда сделаете «Просмотр источника» на веб-странице.
Как мне этого добиться?
Поскольку вы упомянули, что вы хотите, чтобы вывод был похож на просмотр исходного кода, вы можете просто объявить тип содержимого в виде простого текста в начале вашего скрипта.
Это отобразит вывод в виде текста, и текстовый файл можно загрузить.
Пример:
<?php
header("Content-Type: text/plain");
echo '<html><head><title>Hello</title></head><body><p>helloooooo</p></body></html>';
echo $_SERVER['REMOTE_ADDR'];
?>
Надеюсь, что это будет иметь смысл, иначе, если вы захотите показать это пользователю, альтернативным способом будет передача вывода через htmlspecialchars (); функция.
Пример:
$content = '<html><head><title>Hello</title></head><body>p>helloooooo</p></body></html>';
echo htmlspecialchars($content);
попробуйте использовать PHP show_source (); функция.
дайте ему ссылку на ваш текстовый файл, например
show_source("/link/to/my_file.html");
и будь осторожен с этим потому что он может раскрыть пароли и другую конфиденциальную информацию
Для этого проще всего перехватить все, что отправлено на выход, и буферизовать его. В конце вы можете решить, хотите ли вы сделать это так же, как всегда, или хотите ли вы использовать htmlspecialchars()
для отображения источника.
В начале вашего кода поместите следующее утверждение:
$outputType = 'viewsource';
ob_start();
В конце кода добавьте следующее:
$output = ob_get_contents();
ob_end_clean();
if($outputType == 'viewsource') {
echo htmlspecialchars($output);
} else {
echo $output;
}
Есть несколько способов сделать это, самый простой из которых pre
теги, или вы можете переименовать файл из .php
в .phps
или используйте highlight_file($file)
который также синтаксис-выделить ваш код. Есть также file_get_contents()
и даже show_source()
как упоминал @hackitect.
Помните, что любой HTML-код должен быть выведен в pre
теги и сбежали.
Еще один трюк, который я на самом деле раньше делали гиперссылку с URL-адресом источника просмотра.
Отлично работает на Chrome, Firefox и Opera, но не на IE.
<a target="_blank" href="view-source:http://stackoverflow.com/questions/27034642/output-rendered-html-as-plain-text">Get Plain Text</a>