2009-11-26 4 views
0

html 파일의 내용으로 일부 문자열에서 preg_reg를 사용해야합니다. 내가 거기에 약간의 공백에 넣어 위해 노력했다큰 문자열에 preg_grep

[77]=> 
    string(35) "<div> 
</div> 
<br> 
{{testto}} 
<br>" 

.. : :

$file = file_get_contents($path); 
$html_array = explode(' ', $file); 

문제는 배열은 다음과 같이 때때로 보이는 것입니다 P 작동하지 않습니다 .. :/나중에 나는 것 이 같은 preg_grep을 수행

$childframes = preg_grep('!\{\{(\w+)\}\}!', $html_array); 
$retur = array(); 
foreach($childframes as $v){ 
    $v = trim($v); 
    $retur[] = substr($v, 2, -2); 
} 
return $retur; 

그래서 아이디어는 배열, 난 단지 'sometext'로 아래로 하위 문자열 {{sometext}}의 모든 경우에 {{testto}}를 얻기 위해 기본적으로.

감사합니다 =)

편집 : 그냥 공백 .. 대신, 잘 작동하지 않는 폭발 가능하면 내가 몇 가지 정규식을해야하고, 더 좋은 방법이 :

문제를 반복하려면 큰 문자열에서 preg_grep을 수행 하시겠습니까?

+0

? 쉽게 할 수있는 방법이 있습니다. – Galen

답변

1

, 임시 배열을 생성, 폭발을 grep을하고, 나중에 다만 정규 표현식 일치를 제거 할 필요가 없습니다 :

$html = file_get_contents($path); 
preg_match_all('#{{(.*?)}}#', $html, $matches); 
$array_of_texts = $matches[1]; 
정확히 당신이 뭘 하려는지
+0

와우! 좋은 : D는 훨씬 더 좋았어, 감사 =) – Johannes

0

당신은 사용하지 마십시오 : 당신이 다음 코드는 제대로 'sometext'를 얻을 것이다, HTML 태그를 모두 제거

strip_tags($v) 

첫 있도록.

+0

그 기능을 본 적이 없어요, 고마워요 :) – Johannes