2010-02-07 3 views
1

목적은 <!-- content:start -->some content here<!-- content:stop -->로 세트를 발견하고 배열로 넣어 하나 하나를 처리하기 위해,하지만 때마다 그것은 더 일치하는 항목을 찾을으로 어떤 경기를 인쇄하지 않고 내 다이 문을 메아리. 참고 : 시작과 끝 태그 사이의 콘텐츠는 일반적으로 여러 줄에 걸쳐 있습니다.나는 무엇으로, 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; 
} 

답변

2

, 당신의 패턴에 /s 수정을 추가 (. 일치 뉴 라인을 만들기 위해). ()

+0

전체 조각''아닌가 제 원정 '([\ w] +)'그 안에 제 매치 간주 ? – animuson

+0

추가 올바른 패턴 –

+0

흠, 하나 개의 문자는 모든 차이를 만드는, 감사합니다! – animuson