我在做什么错误preg_match_all?

我在做什么错误preg_match_all?

问题描述:

目标是找到诸如<!-- content:start -->some content here<!-- content:stop -->这样的集合并处理每个集合以将其放入数组中,但每次找到没有匹配和回声时我的die语句不打印任何匹配。 注意:开始和结束标记之间的内容通常跨越多行。我在做什么错误preg_match_all?

这是当前正在执行的函数。

function boom($data) { 
    $number = preg_match_all("/(<!-- ([\w]+):start -->)(.*?)(<!-- \\2:stop -->)/", $data, $matches, PREG_SET_ORDER); 
    if ($number == 0) $data['content'] = $data; 
    //else unset($data); 
    foreach ($matches as $item) print_r($item)."\n\n"; // $data[$item[2]] = explode("<!-- breaker -->", $item[3]); 
    die("<code>".str_replace("\n", "<br />", htmlentities($data))."</code>"); 
    return $data; 
} 

如果您的文本继续多行,只是/s改性剂添加到您的模式(使.匹配换行符)。

+0

不是整个部分'()'认为第一个匹配和第二个匹配的内部([\ w] +) ? – animuson 2010-02-07 08:36:54

+0

添加了正确的模式 – 2010-02-07 08:39:57

+0

嗯,一封信使所有区别,谢谢! – animuson 2010-02-07 08:47:06