2011-01-11 3 views
1

에 span 태그 내의 특정 단어에 링크를 추가, 난으로, preg_match_all preg_replace이다 사용하여 비교적 쉽게이 작업을 수행 할 수 있습니다나는에 대한 링크를 추가 할 단어 목록을 가지고 PHP

$str = "<span class=\"cz\">Dám si jedno pivo prosím.</span> = I'll have a beer please."; 

preg_match_all('/[a-zťúůýžáčďéěíňóřš]+/i',$str,$matches); 
$matches = array_unique($matches[0]); 

foreach ($matches as $match) { 
    if(!empty($words[$match])) { 
     $str = preg_replace("/(^|[^\w]){1}(".preg_quote($match,"/").")($|[^\w]){1}/i", '\\1<a href="#">\\2</a>\\3', $str); 
    } 
} 

echo $str; 

를 내가 원하는 것은 span 태그 내에서만 연결을 제한하는 것입니다.

내 두뇌는 모두 정규식으로 처리되므로 도움을 주시면 감사하겠습니다. 감사!

대런.

답변

0
preg_match_all('/[a-zťúůýžáčďéěíňóřš]+(?=\s*?</span>)/i',$str,$matches); 
0
/(*<SPAN*>)([^<]*)(<\/SPAN>)/i 

나는이 일이 잘되어야한다고 생각하지만, 귀하의 SPAN 안에 다른 태그가 있다면 깨질 것입니다. 대신 DOM 함수를 사용하는 것이 좋습니다.

관련 문제