我有以下代码:
<?
$serverurl = $_SERVER["DOCUMENT_ROOT"];
$file = $serverurl.'/demo/sample_php.php';
$newfile = $serverurl.'/demo/sample_php.txt';
if (!copy($file, $newfile)) {
echo "failed to copy $file...\n";
}
$homepage = file_get_contents($serverurl.'/demo/sample_php.txt');
?>
<pre class="code">
<code class="php boc-html-script">
<? echo htmlentities($homepage, ENT_QUOTES); ?>
</code>
</pre>
<? unlink($newfile); ?>
这基本上将* .php文件复制到* .txt文件,显示内容,然后删除它。但是,我不想创建可见文件,因为应用程序旨在显示文件列表,然后显示文件的内容。文件以.txt扩展名出现会令人困惑。
我意识到我可以创建一个隐藏的文件夹,并在那里进行所有转换,但我认为必须有一种更有效的方式来显示php文件的内容。
我做了一些tmpfile()
的实验,但是我无法获取要写入的php文件的内容。
有什么想法吗?
答案 0 :(得分:5)
没有理由进行文件复制。 file_get_contents()
以字符串形式返回文件的内容,这就是您所需要的。它不会像include()/require()
那样解析和执行PHP代码。
只需将PHP文件的内容检索到$homepage
变量中,然后像使用临时文本文件一样将其回显。
<?php
// get the PHP file directly.
$homepage = file_get_contents($serverurl.'/demo/sample_php.php');
?>
<pre class="code">
<code class="php boc-html-script">
<?php echo htmlentities($homepage, ENT_QUOTES); ?>
</code>
</pre>
在评论中建议使用突出显示进行打印后,您可以使用highlight_file()
更轻松地执行此操作:
highlight_file($serverurl.'/demo/sample_php.php');