如何匹配字符串中的模式


How to match a pattern in a string

>字符串

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

我必须获取标签内的代码并执行它.

谢谢

实现此目的的最佳方法可能是使用正则表达式。如果您想了解有关正则表达式的更多信息,请查看本教程。

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

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

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

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

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