简单解释一些代码:
第一个 ~(]+?>)~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); ?> |

HTML(HyperTextMarkupLanguage)是用于创建Web页面的标准语言,它使用标签和属性来描述页面上的各种元素,例如文本、图像、表格和链接等等。但是,在处理HTML文本时,很难将其中的文本内容快速地提取出来用于后续的处理。这时,我们可以使用Python中的正则表达式来去除HTML标签,以达到快速提取纯文本的目的。在Python中,正则表

如何在Go语言中使用正则表达式提取HTML标签内容导读:正则表达式是一种强大的文本匹配工具,它在Go语言中也有着广泛的应用。在处理HTML标签的场景中,正则表达式可以帮助我们快速提取需要的内容。本文将介绍如何在Go语言中使用正则表达式提取HTML标签的内容,并给出相关代码示例。一、引入相关包首先,我们需要导入相关的包:regexp和fmt。regexp包提供

PHP开发:实现搜索关键词提示和自动补全功能在现今互联网时代,搜索引擎已经成为人们获取信息的重要渠道之一。而在网站开发中,搜索功能的重要性不言而喻。为了提升用户体验和搜索效果,实现搜索关键词提示和自动补全功能是一项非常有价值和必要的开发任务。本文将为大家介绍如何在PHP开发中实现搜索关键词提示和自动补全功能,并提供具体的代码示例。搜索关键词提示是指在用户输入

PHP是一种常用的服务器端脚本语言,广泛应用于网站开发和后端应用程序开发中。在开发网站或应用程序时,经常会遇到需要处理字符串中的HTML标签的情况。本文将介绍如何使用PHP去除字符串中的HTML标签,并提供具体的代码示例。为什么需要去除HTML标签?在处理用户输入或从数据库中获取的文本时,经常会包含HTML标签。有时候我们希望在显示文本时去除这些HTML标签

如何使用Vue和Element-UI实现自动补全功能概述:自动补全是一种非常实用的功能,它能够根据用户的输入提供相关的补全选项,提高用户体验。在Vue框架中,结合Element-UI组件库,实现自动补全功能变得非常简单。本文将介绍如何使用Vue和Element-UI来实现这一功能,并给出相应的代码示例。步骤一:创建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)是一款免费、开源的跨平台编辑器,由微软公司开发。它支持多种语

String是Java中的final类,它是不可变的,这意味着我们不能改变对象本身,但我们可以更改对象的引用。可以使用String类的replaceAll()方法从给定字符串中删除HTML标签。我们可以使用正则表达式从给定字符串中删除HTML标记。从字符串中删除HTML标签后,它将返回一个字符串作为普通文本。语法publicStringreplaceAll(Stringregex,Stringreplacement)示例publicclassRemoveHTMLTagsTest{&nbs


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境