如何在php中打印某些函数生成的代码?

时间:2011-11-24 16:01:25

标签: php drupal

我的CMS中有一个代码可以打印内容:<?php print $content ?> 我想在$content后面输出实际的php和html代码,最好是在浏览器中输出。我在这里的意思不是浏览器的结果,而是它背后的实际代码。它有可能吗?

编辑:只是进一步解释:我需要打印$ content的源代码。基本上这个变量产生一些html和php内容。我希望看到它生成的代码,更改它并用我的自定义代码替换$ content。理想情况下,源代码应该在浏览器中打印,是否有这样的PHP功能呢?

3 个答案:

答案 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/htmlspecialcharshttp://php.net/htmlentities