Php &引用;编辑「;内容中包含var的短标记,不包含eval()

Php &引用;编辑「;内容中包含var的短标记,不包含eval(),php,eval,php-shorttags,Php,Eval,Php Shorttags,首先,让我澄清一下,我们知道在PHP中使用短标记语法的好处。这不是这个问题的主题 有没有办法将包含短标记代码的文件“包含”到变量中,并让PHP实际解析代码 include/require显然不以可行的形式提供数据,并且输出缓冲不会解析短标记代码,因为它发生在运行时 使用eval() 建议 ob_start(); $ini_sot = ini_get('short_open_tag'); ini_set('short_open_tag', 1); include('file_with_short_

首先,让我澄清一下,我们知道在PHP中使用短标记语法的好处。这不是这个问题的主题

有没有办法将包含短标记代码的文件“包含”到变量中,并让PHP实际解析代码

include
/
require
显然不以可行的形式提供数据,并且输出缓冲不会解析短标记代码,因为它发生在运行时

使用
eval()

建议

ob_start();
$ini_sot = ini_get('short_open_tag');
ini_set('short_open_tag', 1);
include('file_with_short_tags.php');
ini_set('short_open_tag', $ini_sot);
$variable = ob_get_contents();
ob_end_clean();

我不确定您在关于输出缓冲不合适的问题中的意思,但我还是使用了它。我假设您的问题是您的平台上没有启用短标记,可能您只需要在代码中临时启用它。

“…输出缓冲不会解析短标记代码,因为它发生在运行时。”。。。什么?这是一个很好的答案,但我认为PHP只是改变了动态更改短标记的能力,如图所示。在>4=5.3中,它必须是php.ini、.htaccess或httpd.conf等(),您完全正确。在我进行检查之前,另一位消息人士告诉我,编译时和运行时之间肯定存在差异。非常感谢。