我正在尝试使用file_get_contents并输出php代码作为字符串,而不显示。我们的想法是获取未经渲染的原始文件内容,以便在textarea中进行编辑...
// file "foo.php" I'm needing the contents of
<h1>foo</h1>
<? include 'path/to/another/file' ?>
// php file that's calling the file_get_contents
<?php
echo file_get_contents('foo.php');
?>
上面的代码正在删除foo.php中的php include,它输出:
<h1>foo</h1>
有谁知道如何将foo.php内容作为原始未呈现字符串输出?:
<h1>foo</h1>
<? include 'path/to/another/file' ?>
非常感谢任何帮助!
答案 0 :(得分:10)
据我所知,除非它在同一台服务器上,否则无法获取php内容。 确保您尝试访问本地托管的文件而不是远程访问的文件,它应该可以正常工作。
此外,如果您尝试回显代码,它将尝试解析它,因此将其传递给htmlspecialchars($source)
,它应该可以正常工作。
这样的事情:
<?php
echo "<pre>";
echo htmlspecialchars(file_get_contents('file.php'));
echo "</pre>";
?>
将回显php文件的格式化源代码,包括注释和其中任何其他文本而不进行解析。而且因为它看起来对你很重要,我当然也会说它显示在DOM 中,因为它不再是代码,现在它是文本。你可以把它放在一个容器里,给它做样,然后用它做任何你想做的事。
答案 1 :(得分:-1)
你也可以这样做:
<?php
highlight_file('file.php');
// or alternatively
echo highlight_file('file.php',true);
这将输出与htmlspecialchars
和file_get_content
类似但在<code>
标记内并使用一些语法突出显示的文件。
(PHP 4,PHP 5,PHP 7)
highlight_string - 突出显示字符串的语法
(PHP 4,PHP 5,PHP 7)
highlight_file - 突出显示文件的语法