我有一个字符串,其中包含 php 代码,我需要从字符串中删除 php 代码,例如:
<?php $db1 = new ps_DB() ?><p>Dummy</p>
应该返回<p>Dummy</p>
例如,没有 php 的字符串<p>Dummy</p>
应该返回相同的字符串。
我知道这可以用正则表达式来完成,但 4 小时后我还没有找到解决方案。
<?php
function filter_html_tokens($a){
return is_array($a) && $a[0] == T_INLINE_HTML ?
$a[1]:
'';
}
$htmlphpstring = '<a>foo</a> something <?php $db1 = new ps_DB() ?><p>Dummy</p>';
echo implode('',array_map('filter_html_tokens',token_get_all($htmlphpstring)));
?>
正如 ircmaxell 指出的:这需要有效的 PHP!
正则表达式路由将是(允许在字符串/文件中没有带有短标签的“php”。没有结尾?>(出于某种原因 Zend 推荐这样做?),当然还有 UNgreedy & DOTALL 模式:
preg_replace('/<\\?.*(\\?>|$)/Us', '',$htmlphpstring);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)