Heim Backend-Entwicklung PHP-Tutorial php使HTML标签自动补全闭合函数代码_PHP

php使HTML标签自动补全闭合函数代码_PHP

Jun 01, 2016 pm 12:08 PM
html标签 自动补全

简单解释一些代码:
第一个 ~(]+?>)~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 = "
x1s
测试 124";
echo subHtml($str);
?>

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So entfernen Sie HTML-Tags mithilfe regulärer Python-Ausdrücke So entfernen Sie HTML-Tags mithilfe regulärer Python-Ausdrücke Jun 22, 2023 am 08:44 AM

HTML (HyperTextMarkupLanguage) ist eine Standardsprache zum Erstellen von Webseiten. Sie verwendet Tags und Attribute, um verschiedene Elemente auf der Seite zu beschreiben, wie z. B. Text, Bilder, Tabellen, Links usw. Bei der Verarbeitung von HTML-Text ist es jedoch schwierig, den Textinhalt schnell für die anschließende Verarbeitung zu extrahieren. Zu diesem Zeitpunkt können wir reguläre Ausdrücke in Python verwenden, um HTML-Tags zu entfernen und so schnell einfachen Text zu extrahieren. In Python reguläre Tabellen

So extrahieren Sie HTML-Tag-Inhalte mithilfe regulärer Ausdrücke in der Go-Sprache So extrahieren Sie HTML-Tag-Inhalte mithilfe regulärer Ausdrücke in der Go-Sprache Jul 14, 2023 pm 01:18 PM

So verwenden Sie reguläre Ausdrücke zum Extrahieren von HTML-Tag-Inhalten in der Go-Sprache. Einführung: Reguläre Ausdrücke sind ein leistungsstarkes Tool zum Textabgleich und werden auch häufig in der Go-Sprache verwendet. Im Szenario der Verarbeitung von HTML-Tags können uns reguläre Ausdrücke dabei helfen, den erforderlichen Inhalt schnell zu extrahieren. In diesem Artikel wird erläutert, wie reguläre Ausdrücke zum Extrahieren des Inhalts von HTML-Tags in der Go-Sprache verwendet werden, und es werden relevante Codebeispiele aufgeführt. 1. Verwandte Pakete einführen Zuerst müssen wir verwandte Pakete importieren: regexp und fmt. regexp-Paket bietet

PHP-Entwicklung: So implementieren Sie Eingabeaufforderungen für Suchbegriffe und automatische Vervollständigungsfunktionen PHP-Entwicklung: So implementieren Sie Eingabeaufforderungen für Suchbegriffe und automatische Vervollständigungsfunktionen Sep 21, 2023 pm 01:01 PM

PHP-Entwicklung: Implementierung von Eingabeaufforderungen für Suchbegriffe und Funktionen zur automatischen Vervollständigung. Im heutigen Internetzeitalter sind Suchmaschinen zu einem der wichtigsten Kanäle geworden, über die Menschen Informationen erhalten. Bei der Website-Entwicklung liegt die Bedeutung der Suchfunktion auf der Hand. Um das Benutzererlebnis und die Suchergebnisse zu verbessern, ist die Implementierung von Suchbegriff-Eingabeaufforderungen und automatischen Vervollständigungsfunktionen eine sehr wertvolle und notwendige Entwicklungsaufgabe. In diesem Artikel wird erläutert, wie Eingabeaufforderungen für Suchbegriffe und automatische Vervollständigungsfunktionen in der PHP-Entwicklung implementiert werden, und es werden spezifische Codebeispiele bereitgestellt. Eingabeaufforderungen für Suchbegriffe beziehen sich auf die

Wie entferne ich HTML-Tags aus einer Zeichenfolge in PHP? Wie entferne ich HTML-Tags aus einer Zeichenfolge in PHP? Mar 23, 2024 pm 09:03 PM

PHP ist eine häufig verwendete serverseitige Skriptsprache, die häufig in der Website-Entwicklung und der Back-End-Anwendungsentwicklung eingesetzt wird. Bei der Entwicklung einer Website oder Anwendung kommt es häufig vor, dass Sie HTML-Tags in Zeichenfolgen verarbeiten müssen. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP HTML-Tags aus Zeichenfolgen entfernen, und es werden spezifische Codebeispiele bereitgestellt. Warum müssen Sie HTML-Tags entfernen? Bei der Verarbeitung von Benutzereingaben oder aus einer Datenbank abgerufenem Text werden häufig HTML-Tags einbezogen. Manchmal möchten wir diese HTML-Tags entfernen, wenn wir Text anzeigen

So verwenden Sie Vue und Element-UI zur Implementierung der Autovervollständigungsfunktion So verwenden Sie Vue und Element-UI zur Implementierung der Autovervollständigungsfunktion Jul 21, 2023 pm 02:53 PM

Überblick über die Verwendung von Vue und Element-UI zur Implementierung der Autovervollständigungsfunktion: Die Autovervollständigung ist eine sehr praktische Funktion, die relevante Vervollständigungsoptionen basierend auf Benutzereingaben bereitstellen und die Benutzererfahrung verbessern kann. Im Vue-Framework wird es in Kombination mit der Element-UI-Komponentenbibliothek sehr einfach, die automatische Vervollständigungsfunktion zu implementieren. In diesem Artikel wird die Verwendung von Vue und Element-UI zum Implementieren dieser Funktion vorgestellt und entsprechende Codebeispiele gegeben. Schritt 1: Erstellen Sie ein Vue-Projekt und stellen Sie zunächst die Element-UI-Bibliothek vor.

So maskieren Sie HTML-Tags in PHP So maskieren Sie HTML-Tags in PHP Feb 24, 2021 pm 06:00 PM

In PHP können Sie die Funktion htmlentities() verwenden, um HTML zu maskieren, wodurch Zeichen in HTML-Entitäten umgewandelt werden können. Die Syntax lautet „htmlentities(string,flags,character-set,double_encode)“. Sie können auch die Funktion html_entity_decode() in PHP verwenden, um HTML zu entescapen und HTML-Entitäten in Zeichen umzuwandeln.

Wie entferne ich HTML-Tags aus einer bestimmten Zeichenfolge in Java? Wie entferne ich HTML-Tags aus einer bestimmten Zeichenfolge in Java? Aug 29, 2023 pm 06:05 PM

String ist eine letzte Klasse in Java, sie ist unveränderlich, was bedeutet, dass wir das Objekt selbst nicht ändern können, aber wir können die Referenz des Objekts ändern. HTML-Tags können mit der Methode replaceAll() der String-Klasse aus einer bestimmten Zeichenfolge entfernt werden. Mithilfe regulärer Ausdrücke können wir HTML-Tags aus einer bestimmten Zeichenfolge entfernen. Nachdem die HTML-Tags aus der Zeichenfolge entfernt wurden, wird eine Zeichenfolge als normaler Text zurückgegeben. Syntax publicStringreplaceAll(Stringregex,Stringreplacement) Beispiel publicclassRemoveHTMLTagsTest{&nbs

Empfehlen Sie mehrere leistungsstarke C-Spracheditoren Empfehlen Sie mehrere leistungsstarke C-Spracheditoren Feb 19, 2024 pm 01:40 PM

Im Bereich der Computerprogrammierung wurde die Sprache C aufgrund ihrer Einfachheit und Effizienz von Entwicklern schon immer bevorzugt. Um die Effizienz bei der C-Sprachprogrammierung zu verbessern, ist es sehr wichtig, einen guten C-Spracheditor auszuwählen. In diesem Artikel werden mehrere leistungsstarke C-Spracheditoren vorgestellt, die Entwicklern dabei helfen sollen, das Programmieren in C-Sprache zu verbessern. VisualStudioCodeVisualStudioCode (kurz VSCode) ist ein kostenloser, plattformübergreifender Open-Source-Editor, der von Microsoft entwickelt wurde. Es unterstützt mehrere Sprachen

See all articles