我的CMS中有一个代码可以打印内容:<?php print $content ?>
我想在$content
后面输出实际的php和html代码,最好是在浏览器中输出。我在这里的意思不是浏览器的结果,而是它背后的实际代码。它有可能吗?
编辑:只是进一步解释:我需要打印$ content的源代码。基本上这个变量产生一些html和php内容。我希望看到它生成的代码,更改它并用我的自定义代码替换$ content。理想情况下,源代码应该在浏览器中打印,是否有这样的PHP功能呢?
答案 0 :(得分:2)
首先安装Devel Module,它有一个很棒的函数dpm()
,它会将任何变量的内容打印到Drupal消息区域。
然后您需要进入主题的template.php
文件并实施hook_preprocess_page()
:
function mytheme_preprocess_page(&$vars) {
dpm($vars['content']);
}
这会在$content
数组渲染成字符串之前打印出来。在相同的预处理功能中,您还可以根据需要更改$vars['content']
,更改将反映在$content
的{{1}}中。
希望有所帮助
答案 1 :(得分:0)
“代码”是什么意思?我想你想做的事情是不可能的,除非你制作某种东西,否则当你运行时不可能输出php文件的实际php代码。
如果$content
类似于:
$content = 3 + 4 + 5;
echo $content;
会输出12
是吗?但我正在接受你想要输出3 + 4 + 5
或类似的东西。问题是,PHP(虽然它不像感觉一样)被编译。在这个简单的示例中,3 + 4 + 5
完全存储在已编译的程序中,它存储为12
(因为它是静态的)。更复杂的代码行将被存储为指针,值等,所有这些都在很好地模糊的机器代码中。回到3 + 4 + 5
需要读取输入文件并输出相关的行,这很难(想想如果添加或删除某些行会发生什么,或者运行程序如何知道它在源文件中的位置,或者即使它在正确的源文件中)。
tl;博士:这是不可能的。
答案 2 :(得分:0)
好吧,如果您只想查看$ content的html源代码,您应该只使用htmlspecialchars:
echo htmlspecialchars($content);
http://php.net/htmlspecialchars 或http://php.net/htmlentities