我想将phpinfo()
嵌入到管理页面中。保持网站的导航和样式。但是,该函数中应用的样式与站点自己的样式(不符合导航样式)很不兼容。
问题:如何防止phpinfo()
影响嵌入它的页面?
答案 0 :(得分:1)
深入研究PHP User Contributed Notes之后,我发现了大多数解决方案。然后,我扩展了发现的内容并将其包装在一个函数中。它将剥离<body></body>
标签,并回显其自己的可定制样式,然后在phpinfo()
内显示<div id='phpinfo'></div>
的内容。
function embedded_phpinfo()
{
ob_start();
phpinfo();
$phpinfo = ob_get_contents();
ob_end_clean();
$phpinfo = preg_replace('%^.*<body>(.*)</body>.*$%ms', '$1', $phpinfo);
echo "
<style type='text/css'>
#phpinfo {}
#phpinfo pre {margin: 0; font-family: monospace;}
#phpinfo a:link {color: #009; text-decoration: none; background-color: #fff;}
#phpinfo a:hover {text-decoration: underline;}
#phpinfo table {border-collapse: collapse; border: 0; width: 934px; box-shadow: 1px 2px 3px #ccc;}
#phpinfo .center {text-align: center;}
#phpinfo .center table {margin: 1em auto; text-align: left;}
#phpinfo .center th {text-align: center !important;}
#phpinfo td, th {border: 1px solid #666; font-size: 75%; vertical-align: baseline; padding: 4px 5px;}
#phpinfo h1 {font-size: 150%;}
#phpinfo h2 {font-size: 125%;}
#phpinfo .p {text-align: left;}
#phpinfo .e {background-color: #ccf; width: 300px; font-weight: bold;}
#phpinfo .h {background-color: #99c; font-weight: bold;}
#phpinfo .v {background-color: #ddd; max-width: 300px; overflow-x: auto; word-wrap: break-word;}
#phpinfo .v i {color: #999;}
#phpinfo img {float: right; border: 0;}
#phpinfo hr {width: 934px; background-color: #ccc; border: 0; height: 1px;}
</style>
<div id='phpinfo'>
$phpinfo
</div>
";
}
答案 1 :(得分:0)
我尝试使用ob_get_contents()将phpinfo转换为字符串变量,并且phpinfo仍显示在页面中。然后,将ob_get_contents代码放入函数中,并获得$ phpinfo变量。
function getPhpinfo()
{
ob_start();
phpinfo();
$data = ob_get_contents();
ob_clean();
return $data;
}
$phpinfo = getPhpinfo();
var_dump(strlen($phpinfo));