我正在开发自己的CMS,我想实现动态包含位于服务器上的现有PHP脚本的功能。
有一个名为$ page_content的变量,其中包含包含HTML和JS代码的页面内容,还包含一些正则表达式识别的文本,然后处理识别的文本并替换为所需的动态创建数据。我也想通过使用该正则表达式机制来触发包含新脚本,但这是一个问题,因为正则表达式识别是通过函数解决的,似乎如果我在函数内部“包含”或“需要”包含脚本受到函数变量的限制范围,所以我不能得到我需要的行为。
我应该怎样做才能让事情按照我的意愿运作,我的意思是我可以更多地使用这些动态包含的脚本。
提前致谢 MTH
答案 0 :(得分:1)
这听起来像你正在做的危险事情。您是否考虑过HTML / JS(我假设CMS的用户插入)包含与您的正则表达式匹配的字符串的情况?
关于范围界定问题:函数compact()
可以将当前范围变量打包到数组中,extract()
可以再次设置它们。但在使用这些功能时要非常谨慎。您可能会意外地覆盖您实际需要的其他变量。
function test($vars) {
extract($vars);
# The array might have contained the key 'vars', in which case
# your function argument is now overwritten.
}
答案 1 :(得分:0)
看看php提取功能, 它允许您将一组变量加载到您想要的范围
http://nz2.php.net/manual/en/function.extract.php
ob_start();
extract($my_variables_array);
include $phpfile;
$output = ob_get_clean();