例如,如果我有脚本:
<?php
$page = "My Page";
echo "<title>" . $page . "</title>";
require_once('header.php');
require_once('content.php');
require_once('footer.php');
?>
我可以添加到该页面底部以显示整个预编译的PHP吗?
我想逐字回显php代码,而不是编译它。
所以在我的浏览器中,我会以代码形式看到以下内容......
// stuff from main php
$page = "My Page";
echo "<title>" . $page . "</title>";
// stuff from require_once('header.php');
$hello = "Welcome to my site!";
$name = "Bob";
echo "<div>" . $hello . " " . $name . "</div>";
// stuff from require_once('content.php');
echo "<div>Some kool content!!!!!</div>";
// stuff from require_once('footer.php');
$footerbox = "<div>Footer</div>";
echo $footerbox;
这可能吗?
答案 0 :(得分:2)
没有办法让它本地化为PHP,但如果您只是想要一些非常简单且不健壮的东西,您可以尝试破解它:
<?php
$php = file_get_contents($_GET['file']);
$php = preg_replace_callback('#^\s*(?:require|include)(?:_once)?\((["\'])(?P<file>[^\\1]+)\\1\);\s*$#m', function($matches) {
$contents = file_get_contents($matches['file']);
return preg_replace('#<\?php(.+?)(?:\?>)?#s', '\\1', $contents);
}, $php);
echo '<pre>', htmlentities($php), '</pre>';
备注:强>
include($foo);
或include(__DIR__ . '/foo.php');
之类的内容无效。免责声明:基本上,要做到这一点,您需要实际解析PHP代码。我只提供上述内容,因为这是一个有趣的问题,我很无聊。
答案 1 :(得分:1)
echo '$page = "My Page";';
echo 'echo "<title>" . $page . "</title>";';
echo file_get_contents('header.php');
echo file_get_contents('content.php');
echo file_get_contents('footer.php');
为了清楚起见,我将标题生成放在它自己的文件中,然后只使用一系列echo file_get_contents()......
echo file_get_contents('title.php');
echo file_get_contents('header.php');
echo file_get_contents('content.php');
echo file_get_contents('footer.php');