Heim > Backend-Entwicklung > PHP-Tutorial > Wie schneide ich HTML-Text ab und behalte dabei die Tag-Struktur bei?

Wie schneide ich HTML-Text ab und behalte dabei die Tag-Struktur bei?

Linda Hamilton
Freigeben: 2024-11-13 00:04:01
Original
1030 Leute haben es durchsucht

How to Truncate HTML Text while Preserving Tag Structure?

Abschneiden von Text, der HTML enthält, mit Tag-Erhaltung

Herausforderung

Abschneiden von Text mit eingebetteten HTML-Tags führt häufig zu unvollständigen oder falsch geschlossenen Tags. Wie können wir den Text effektiv kürzen und gleichzeitig die HTML-Struktur beibehalten?

Lösung: Tag-Aware Truncation

Um die HTML-Struktur beizubehalten, müssen wir den Überblick über und behalten Verwalten Sie offene und geschlossene Tags. Hier ist eine PHP-Implementierung:

function printTruncated($maxLength, $html, $isUtf8 = true)
{
    $printedLength = 0;
    $position = 0;
    $tags = [];

    $re = $isUtf8
        ? '{</?([a-z]+)[^>]*>|&amp;#?[a-zA-Z0-9]+;|[\x80-\xFF][\x80-\xBF]*}'
        : '{</?([a-z]+)[^>]*>|&amp;#?[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...
}
Nach dem Login kopieren

Beispielverwendung

printTruncated(10, '<b>&amp;lt;Hello&amp;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>&amp;#20;w\xC3\xB8rld!</em>");
Nach dem Login kopieren

Hinweis:

Die Funktion geht von UTF aus. 8 Kodierung. Für andere Kodierungen verwenden Sie mb_convert_encoding, um vor dem Abschneiden in UTF-8 zu konvertieren.

Das obige ist der detaillierte Inhalt vonWie schneide ich HTML-Text ab und behalte dabei die Tag-Struktur bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage