태그 보존을 사용하여 HTML이 포함된 텍스트 자르기
챌린지
삽입된 HTML 태그가 있는 텍스트 자르기 태그가 불완전하거나 잘못 닫히는 경우가 많습니다. HTML 구조를 유지하면서 텍스트를 효과적으로 자를 수 있는 방법은 무엇입니까?
해결책: 태그 인식 잘림
HTML 구조를 유지하려면 다음을 추적해야 합니다. 열린 태그와 닫힌 태그를 관리합니다. PHP 구현은 다음과 같습니다.
function printTruncated($maxLength, $html, $isUtf8 = true) { $printedLength = 0; $position = 0; $tags = []; $re = $isUtf8 ? '{</?([a-z]+)[^>]*>|&#?[a-zA-Z0-9]+;|[\x80-\xFF][\x80-\xBF]*}' : '{</?([a-z]+)[^>]*>|&#?[a-zA-Z0-9]+;}'; while ($printedLength < $maxLength && preg_match($re, $html, $match, PREG_OFFSET_CAPTURE, $position)) { list($tag, $tagPosition) = $match[0]; $str = substr($html, $position, $tagPosition - $position); # More code... # Continue after the tag. $position = $tagPosition + strlen($tag); } # More code... }
사용 예
printTruncated(10, '<b>&lt;Hello&gt;</b> <img src="world.png" alt="" /> world!'); printTruncated(10, '<table><tr><td>Heck, </td><td>throw</td></tr><tr><td>in a</td><td>table</td></tr></table>'); printTruncated(10, "<em><b>Hello</b>&#20;w\xC3\xB8rld!</em>");
참고:
이 함수는 UTF-를 가정합니다. 8 인코딩. 다른 인코딩의 경우 잘리기 전에 mb_convert_encoding을 사용하여 UTF-8로 변환하세요.
위 내용은 태그 구조를 유지하면서 HTML 텍스트를 자르는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!