Text mit eingebettetem HTML abschneiden
Beim Umgang mit Text, der HTML-Tags enthält, ist es wichtig, die ordnungsgemäße Handhabung beim Abschneiden sicherzustellen, um zu verhindern, dass Tags beschädigt werden Anzeige ungültiger Inhalte. So können Sie Text abschneiden und gleichzeitig die Integrität von HTML beibehalten:
PHP-Implementierung:
Die folgende PHP-Funktion verwendet reguläre Ausdrücke zum Parsen von HTML und verwaltet einen Stapel offener Tags:
function printTruncated($maxLength, $html, $isUtf8 = true) { ... }
Diese Funktion scannt die HTML-Eingabe und identifiziert Tags und Zeicheneinheiten. Es stellt sicher, dass Tags ordnungsgemäß geschlossen werden und zählt Zeichenentitäten als einzelne Zeichen. Dieser Ansatz stellt sicher, dass die Kürzung an einer gültigen Stelle erfolgt, ohne dass die HTML-Struktur beschädigt wird.
Beispielverwendung:
printTruncated(10, '<b><Hello&gt;</b> <img src="world.png" alt="" /> world!'); // Outputs: 'Hello<b></b> <img src="world.png" alt="" />'
Python-Implementierung:
HTML-Parsing-Bibliotheken wie BeautifulSoup können bei dieser Aufgabe helfen Python:
from bs4 import BeautifulSoup, NavigableString def truncate_html(text, max_length): soup = BeautifulSoup(text, 'lxml') truncated = soup.new_tag("div") tail = soup.new_string('') node_len = 0 for node in soup.children: if isinstance(node, NavigableString): node_len += len(node) if node_len <= max_length: truncated.append(node) else: tail.append(node.string[:max_length - node_len]) break else: node_len += len(str(node)) truncated.append(node) return str(truncated) + str(tail)
Beispielverwendung:
print(truncate_html('<b><Hello&gt;</b> <img src="world.png" alt="" /> world!', 10)) # Outputs: 'Hello<b></b> <img src="world.png" alt="" />'
Schlussfolgerung:
Durch Parsen und Verarbeiten von HTML-Tags während Durch die Kürzung stellen diese Methoden sicher, dass der resultierende Text seine beabsichtigte Struktur und Inhaltsgültigkeit beibehält.
Das obige ist der detaillierte Inhalt vonWie schneide ich Text mit eingebettetem HTML ab, ohne Tags zu zerstören?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!