나는 일하는 데 사용 된 일부 키워드에 대해 html로 보이는 정규 표현식을 사용하지만, 지금은 실패하고 그 이유를 모르겠습니다. preg_replace_Callback 호출에find-and-replace-in-html 정규 표현식이 실패합니다.
$find = '/(?![^<]+>)(?<!\w)(' . preg_quote($t['label']) . ')\b/s';
$text = preg_replace_callback($find, 'replaceCallback', $text);
function replaceCallback($match) {
if (is_array($match)) {
$htmlVersion = $match[1];
$urlVersion = urlencode($htmlVersion);
return '<a class="tag" rel="tag-definition" title="Click to know more about ' . $htmlVersion . '" href="?tag=' . $urlVersion . '">' . $htmlVersion . '</a>';
}
return $match;
}
오류 메시지 점 (. 정규 표현식은 this thread에서 온) 다음과 같이 말한다 :
Warning: preg_replace_callback() [function.preg-replace-callback]: Unknown modifier 't' in /frontend.functions.php on line 43
HTML 그래서 정규 표현식 여기에 가장 좋은 도구가 될 수 없습니다 정규 언어가 아닙니다 :이 중첩 된 HTML 태그
<em>Test<em>
발견하면 그것은 두 번째 시도에서 최대 여행. –html을 구문 분석하기 위해 정규식을 사용하면 안됩니다. 여기를 참고하십시오 : http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – Oded
멈출 수 있습니까? – Gordon