php字符串转成可执行代码

php里是有eval函数的,可是似乎只能处理一些简单的php代码字符串。如果复杂一点比如包含一些html代码,就不行了。我想要的是,比如有一个字符串变量是$str=“<?... php里是有eval函数的,可是似乎只能处理一些简单的php代码字符串。如果复杂一点比如包含一些html代码,就不行了。
我想要的是,比如有一个字符串变量是
$str = “ <?php echo 'hello world'; ?> <br /> <span>Over!<span> ”;
有没有什么方法可以把这个字符串像文件包含一样include到当前文件的前面呢?

我想到的方法是把这个串写到一个文件里,再include进来。请问是不是还有别的方法?
另外,像把字符串转化成可执行代码这样的过程有没有专业一点的叫法?
例子
<?php
$str = "<?php echo 'hello world'; ?> <br /> <span>Over!<span>";
echo eval($str); //结果是一个关于eval函数的报错
echo echo htmlentities($str); //结果与echo $str;是一样的
?>
展开
 我来答
是勇敢
2012-02-03 · 希望快乐渡过第一天。
是勇敢
采纳数:914 获赞数:1799

向TA提问 私信TA
展开全部
echo htmlentities($str);

不能了,因为手册里有的〈?PHP ?〉i不能被套的。故不能。我刚才又查了一番。
你可以用此法:
用include('文件路径及文件名');

$a = '<? echo 11111;?>';
$a = str_replace(array('<?', '?>'), '', $a);
eval($a);
本逸春vL
推荐于2017-11-24 · TA获得超过1567个赞
知道小有建树答主
回答量:812
采纳率:0%
帮助的人:656万
展开全部
eval 是在你当前程序代码处嵌入PHP代码,所以你需要将当前程序代码结束掉才可以。
简单的方法是加上 ?> 结束符。

<?php

$str = "<?php echo 'hello world'; ?> <br /> <span>Over!<span>";
echo eval( '?>' . $str ); // 爽快的输出,不用中间文件 include

?>

理解起来很容易,你可以把这段代码看成下面这段代码:

<?php

?><?php echo 'hello world'; ?> <br /> <span>Over!<span>
<?php

?>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
570851835
2012-02-03 · TA获得超过7892个赞
知道大有可为答主
回答量:2343
采纳率:0%
帮助的人:2307万
展开全部
eval($str);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式