PHP正则匹配单行文本成功多行失败的问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 22:42:31
请帮忙看一下下面的代码无法匹配多行文本的问题在哪,谢谢!

<?php
function ttd($message){

preg_match_all( "/(?:\[ttd\]){1}(.*?)(?:\[\/ttd\]){1}/im",$message,$match) ;

print_r($match)."<br />" ;

return $match[1][0] ;

}

//单行成功
//$message = "器器器[ttd]我是第1行我是第2行我是第3行[/ttd]器器器"."<br /><br />" ;
//多行失败
$message = "器器器[ttd]我是第1行\n我是第2行\n我是第3行\n[/ttd]器器器"."<br /><br />" ;

echo $message ;

echo "<br /><br />".ttd( $message ) ;

?>

/im改成/ims试试
s(PCRE_DOTALL)
如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的,无论是否设定了此修正符。