php使HTML标签自动补全闭合函数代码_PHP
简单解释一些代码:
第一个 ~(]+?>)~si
这个正则是匹配中的内容。简单说是所有的。
第二个 ~]*?/>~si
这个正则是匹配中的内容。是单闭合标签 如
第三个 ~([a-z0-9]+)[^/>]*?>~si
这个正则是匹配中的内容。也就是结束标签 如
第四个 ~]*?>~si
匹配<......>中的内容。这和第一个是不一样的,这一个是真正的html标签,因为html标签只有数字和字母,如:
第五个 ~~si
不用解释了,HTMl的注释
剩下的可以看源代码了,php源码附件:
复制代码 代码如下:
/**
* 取HTML,并自动补全闭合
*
* param $html
*
* param $length
*
* param $end
*/
function subHtml($html, $length=50) {
$result = '';
$tagStack = array();
$len = 0;
$contents = preg_split("~(]+?>)~si", $html, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
foreach($contents as $tag) {
if (trim($tag) == "") continue;
if (preg_match("~]*?/>~si", $tag)) {
$result .= $tag;
} else if (preg_match("~([a-z0-9]+)[^/>]*?>~si", $tag, $match)) {
if ($tagStack[count($tagStack)-1] == $match[1]) {
array_pop($tagStack);
$result .= $tag;
}
} else if (preg_match("~]*?>~si", $tag, $match)) {
array_push($tagStack, $match[1]);
$result .= $tag;
} else if (preg_match("~~si", $tag)) {
$result .= $tag;
} else {
if ($len + mstrlen($tag) $result .= $tag;
$len += mstrlen($tag);
} else {
$str = msubstr($tag, 0, $length - $len + 1);
$result .= $str;
break;
}
}
} while (!empty($tagStack)) {
$result .= '' . array_pop($tagStack) . '>';
}
return $result;
}
/**
* 取中文字符串
*
* param $string 字符串
*
* param $start 起始位
*
* param $length 长度
*
* param $charset 编码
*
* param $dot 附加字串
*/
function msubstr($string, $start, $length, $dot = '', $charset = 'UTF-8') {
$string = str_replace(array('&', '"', '', ' '), array('&', '"', '', ' '), $string);
if (strlen($string) return $string;
}
if (strtolower($charset) == 'utf-8') {
$n = $tn = $noc = 0;
while ($n $t = ord($string[$n]);
if ($t == 9 || $t == 10 || (32 $tn = 1;
$n++;
} elseif (194 $tn = 2;
$n += 2;
} elseif (224 $tn = 3;
$n += 3;
} elseif (240 $tn = 4;
$n += 4;
} elseif (248 $tn = 5;
$n += 5;
} elseif ($t == 252 || $t == 253) {
$tn = 6;
$n += 6;
} else {
$n++;
}
$noc++;
if ($noc >= $length) {
break;
}
}
if ($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n);
} else {
for($i = 0; $i $strcut .= ord($string[$i]) > 127 ? $string[$i] . $string[++$i] : $string[$i];
}
}
return $strcut . $dot;
}
/**
* 得字符串的长度,包括中英文。
*/
function mstrlen($str, $charset = 'UTF-8') {
if (function_exists('mb_substr')) {
$length = mb_strlen($str, $charset);
} elseif (function_exists('iconv_substr')) {
$length = iconv_strlen($str, $charset);
} else {
preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-f][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/", $text, $ar);
$length = count($ar[0]);
}
return $length;
}
$str = "
测试 | 124"; echo subHtml($str); ?> |

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











HTML(HyperTextMarkupLanguage)은 웹 페이지를 생성하기 위한 표준 언어로, 텍스트, 이미지, 표, 링크 등과 같은 페이지의 다양한 요소를 설명하기 위해 태그와 속성을 사용합니다. 그러나 HTML 텍스트를 처리할 때 후속 처리를 위해 텍스트 내용을 빠르게 추출하는 것은 어렵습니다. 이때 Python에서 정규식을 사용하여 HTML 태그를 제거하면 일반 텍스트를 빠르게 추출할 수 있습니다. Python에서는 일반 테이블

정규식을 사용하여 Go 언어에서 HTML 태그 콘텐츠를 추출하는 방법 소개: 정규식은 강력한 텍스트 일치 도구이며 Go 언어에서도 널리 사용됩니다. HTML 태그를 처리하는 시나리오에서 정규식은 필요한 콘텐츠를 빠르게 추출하는 데 도움이 될 수 있습니다. 이 기사에서는 정규식을 사용하여 Go 언어에서 HTML 태그의 내용을 추출하는 방법을 소개하고 관련 코드 예제를 제공합니다. 1. 관련 패키지 소개 먼저 관련 패키지인 regexp 및 fmt를 가져와야 합니다. 정규식 패키지는 다음을 제공합니다

PHP 개발: 검색 키워드 프롬프트 및 자동 완성 기능 구현 오늘날 인터넷 시대에 검색 엔진은 사람들이 정보를 얻는 중요한 채널 중 하나가 되었습니다. 웹사이트 개발에 있어서 검색 기능의 중요성은 자명합니다. 사용자 경험과 검색 결과를 향상시키기 위해 검색 키워드 프롬프트와 자동 완성 기능을 구현하는 것은 매우 가치 있고 필요한 개발 작업입니다. 이 기사에서는 PHP 개발에서 검색 키워드 프롬프트 및 자동 완성 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 검색 키워드 프롬프트는

PHP는 웹 사이트 개발 및 백엔드 애플리케이션 개발에 널리 사용되는 일반적으로 사용되는 서버 측 스크립팅 언어입니다. 웹사이트나 애플리케이션을 개발할 때 HTML 태그를 문자열로 처리해야 하는 상황에 자주 직면하게 됩니다. 이 기사에서는 PHP를 사용하여 문자열에서 HTML 태그를 제거하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. HTML 태그를 제거해야 하는 이유는 무엇입니까? 사용자 입력이나 데이터베이스에서 얻은 텍스트를 처리할 때 HTML 태그가 포함되는 경우가 많습니다. 때로는 텍스트를 표시할 때 이러한 HTML 태그를 제거하고 싶을 때가 있습니다.

Vue 및 Element-UI를 사용하여 자동 완성 기능을 구현하는 방법 개요: 자동 완성은 사용자 입력을 기반으로 관련 완성 옵션을 제공하고 사용자 경험을 향상시킬 수 있는 매우 실용적인 기능입니다. Element-UI 컴포넌트 라이브러리와 결합된 Vue 프레임워크에서는 자동 완성 기능을 구현하는 것이 매우 간단해집니다. 이 기사에서는 Vue 및 Element-UI를 사용하여 이 기능을 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다. 1단계: Vue 프로젝트를 생성하고 Element-UI 라이브러리를 소개합니다.

PHP에서는 htmlentities() 함수를 사용하여 html을 이스케이프할 수 있으며, 이는 문자를 HTML 엔터티로 변환할 수 있습니다. 구문은 "htmlentities(string,flags,character-set,double_encode)"입니다. 또한 PHP에서 html_entity_decode() 함수를 사용하여 html을 이스케이프 해제하고 HTML 엔터티를 문자로 변환할 수 있습니다.

컴퓨터 프로그래밍 분야에서 C 언어는 단순성과 효율성으로 인해 개발자들에게 항상 선호되어 왔습니다. C 언어 프로그래밍의 효율성을 높이려면 좋은 C 언어 편집기를 선택하는 것이 매우 중요합니다. 이 기사에서는 개발자가 C 언어로 더 효과적으로 프로그래밍하는 데 도움이 되는 몇 가지 강력한 C 언어 편집기를 소개합니다. VisualStudioCodeVisualStudioCode(줄여서 VSCode)는 Microsoft에서 개발한 무료 오픈 소스 크로스 플랫폼 편집기입니다. 여러 언어를 지원합니다

String은 Java의 최종 클래스이며 불변입니다. 즉, 객체 자체는 변경할 수 없지만 객체의 참조는 변경할 수 있습니다. HTML 태그는 String 클래스의 replacementAll() 메서드를 사용하여 지정된 문자열에서 제거할 수 있습니다. 정규식을 사용하여 특정 문자열에서 HTML 태그를 제거할 수 있습니다. 문자열에서 HTML 태그를 제거한 후 문자열을 일반 텍스트로 반환합니다. 구문 publicStringreplaceAll(Stringregex,Stringreplacement) 예 publicclassRemoveHTMLTagsTest{&nbs
