我有一个PHP页面,得到php_info()
和运行preg_match和ereg有什么区别?
ereg('<body>(.*)</body>', $phpinfo, $regs);
这工作得很好,但因为其弃用我继续更新,以preg_match
,它看起来像这样
preg_match('/<body>((?:.|\n)*)<\/body>/', $phpinfo, $regs);
但现在它每次运行时都会重载服务器。它适用于regexr.com,所以它不应该是错的。 ereg
和preg_match
匹配有什么区别,以及如何在不炸毁服务器的情况下实现此目标?
我想要做的是有一个服务器页面,显示php_info
,但与我的正常菜单和样式。任何替代品也将不胜感激。尽管远离iframe。
感谢
PS:Regexr说,与之匹配的是105563个字符长
有没有考虑过使用[DOM文档(http://php.net/manual/en/相反,class.domdocument.php)?更少的开销和更高的精度。 – Machavity
这听起来像是一个不错的选择。我有 $ doc = new DOMDocument(); \t \t \t $ doc-> loadHTML($ phpinfo); \t \t \t $ temp = $ doc-> getElementsByTagName('body'); \t \t \t的foreach($温度为$体){ \t \t \t \t回声$体佩>的nodeValue,PHP_EOL; \t \t \t} 但它只是倾销内容从标签没有html格式。也尝试了saveHTML,但也没有运气。什么是保持所有标签的正确输出方式? –
不要尝试在评论中放置代码。编辑你的问题。 –