Ale*_*lex 5 php tags string eval
从字符串中删除这些标记的最佳方法是什么,以准备传递给eval()?
例如.字符串可以是这样的:
<?php
echo 'hello world';
?>
Hello Again
<?php
echo 'Bye';
?>
Run Code Online (Sandbox Code Playgroud)
显然str_replace不起作用,因为中间的两个php标签需要在那里(第一个和最后一个需要删除)
通常,您不希望将函数传递给 eval。如果您只想删除标签,string_replace 可以很好地完成这项工作,但是您最好使用正则表达式。
preg_replace(array('/<(\?|\%)\=?(php)?/', '/(\%|\?)>/'), array('',''), $str);
这包括 old-asp 标签、php 短标签、php echo 标签和普通 php 标签。
听起来是个坏主意,但如果你想删除开头和结尾,你可以这样做
$removedPhpWrap = preg_replace('/^<\?php(.*)(\?>)?$/s', '$1', $phpCode);
Run Code Online (Sandbox Code Playgroud)
这应该可以做到(未测试)。
请告诉我你为什么要这样做,我 95% 确信有更好的方法。