如何匹配字符串中的模式

时间:2015-03-17 13:58:20

标签: php regex

字符串

$x= "SDGH <fn>xyz("|",YAG);</fn> is right ";
$code = ?? ;
eval($code);

我必须得到标签内的代码并执行它。

谢谢

2 个答案:

答案 0 :(得分:2)

实现这一目标的最佳方法可能是使用正则表达式。如果您想了解有关正则表达式的更多信息,请查看this tutorial

if(preg_match("/<fn>(.*)<\/fn>/",$x, $matches))
    $code = $matches[1];

此代码匹配<fn></fn>之间的所有内容。请记住,只要涉及用户输入,使用eval始终是危险的。在这种情况下,您需要确保只允许执行某些代码。

答案 1 :(得分:0)

你不需要正则表达式,你也可以使用字符串函数来获取它。

$input = 'SDGH <fn>xyz("|",YAG);</fn> is right';
$output = substr($input, strpos($input, '<fn>') + 4);
$output = substr($output, 0, strpos($output, '</fn>'));
echo $output;

有很多方法可以获得这个结果,你可以使用正则表达式,字符串函数,甚至爆炸