警告:preg_match():未知修饰符';t';


Warning: preg_match(): Unknown modifier 't'

帮助我实现:

 function getTextBetweenTags($string, $tagname)
 {
    $pattern = "/<$tagname>(.*?)<'/$tagname>/";
    preg_match($pattern, $string, $matches);
    return $matches[1];
 }

我得到了:

警告:preg_match():未知修饰符't'

此外,我也尝试过:

    $pattern = "~<$tagname>(.*?)<'/$tagname>~";

在这种情况下,我有:

警告:preg_match():编译失败:
中偏移量为146的字符类中的范围无序

当然,我试过的变体

$pattern = "/<".$tagname.">(.*?)<'/".$tagname.">/";

有什么想法吗?)

您需要在getTextBetweenTags调用中更改参数的位置。'abc'是标签的名称,而不是要搜索的字符串,对吧?

$html = "<html><body><abc>HELLO</abc></body></html>";
function getTextBetweenTags( $string, $tagname ) {
    preg_match( "/'<{$tagname}'>(.*)'<'/{$tagname}'>/", $string, $matches );
    return $matches[1];
}
var_dump( getTextBetweenTags( $html, 'abc' ) );