我有这个:
this string might contain `<?php echo $var; ?>` php code
如果它在文件中,它只是一个include
/ require
命令。但这次eval
不会奏效。怎么办?
答案 0 :(得分:1)
eval()
的文档说:
eval - 将字符串评估为PHP代码
下面还说:
代码不能包含在打开和关闭PHP标记中,...尽管使用适当的PHP标记,仍然可以离开并重新进入PHP模式。
将?>
放在字符串前面,它将成为有效的PHP代码(空代码),然后将一些文本直接发送到输出,并将更多PHP代码片段正确地包含在PHP标记中。< / p>
答案 1 :(得分:1)
这将完成你想要做的事情:
$var = "Hello World!";
$string = 'this string might contain `<?php echo $var; ?>` php code';
//extract command
preg_match('/<\?php(.{1,}?)\?>/',$string,$match);
//print_r($match);
//execute command
eval($match[1]);