Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Usuwanie tagów HTML

Usuń tagi HTML z kodu lub treści strony. Zachowaj czysty tekst, opcjonalnie dekoduj encje HTML. Szybkie narzędzie online. Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
144 znaków

Tagów usuniętych

13

znaczniki <…> w wejściu (także komentarze) — tak czyta je strip_tags(); bloki <script> i <style> znikają w całości z zawartością

Znaki przed

144 zn.

Znaki po

68 zn.

po dekodowaniu encji tekst potrafi być krótszy jeszcze raz (&amp;#8217; → ’)

Znaki mniej

76 zn.
OK

przy wejściu bez tagów i encji różnica to 0

Witaj świecie!
Oto odnośnik & encja: ’.

Pierwszy punkt

Drugi punkt
Kolejność ma znaczenie: podziały wierszy wstawiane są PRZED strip_tags(), a bloki <script>/<style> i komentarze znikają w całości, zanim natywna funkcja PHP zdejmie pozostałe znaczniki
KrokReguła z koduPrzykład
1. Zachowaj podziały wierszy (gdy włączone) Przed usuwaniem tagów wyrażenie regularne zamienia br, p, /p, div, /div, li, /li, tr, /tr, h1–h6 i ich zamykające (razem z atrybutami) na znak nowej linii linia1<br>linia2 → dwie linie
2. Bloki <script> i <style> Usuwane w całości z zawartością (regex z flagami is) — kod JavaScript i CSS nie jest tekstem strony przed<script>var x=1;</script>po → przedpo
3. Komentarze <!-- … --> Usuwane w całości, razem z treścią komentarza przed<!-- notatka -->po → przedpo
4. strip_tags() Natywna funkcja PHP zdejmuje wszystkie pozostałe znaczniki (z atrybutami) <b>tekst</b> → tekst
5. Zamiana encji (gdy włączona) html_entity_decode(ENT_QUOTES | ENT_HTML5, „UTF-8”) — &amp; → &, &#8217; → ’ A &amp; B → A &
6. Normalizacja białych znaków CRLF/CR → LF, trim każdej linii, 2+ spacje/tabulatory → jedna spacja, 3+ puste linie → jedna pusta, trim całości a b → a b
UWAGA: strip_tags() nie waliduje poprawności HTML — znak < (bez spacji po nim) zjada tekst aż do następnego >, a niedomknięty tag czyści resztę ciągu; < ze spacją po nim pozostaje nietknięty
Dane wejścioweOpcjeWynik silnika
<b>tekst</b> podziały: nie tekst
<p>Akapit</p><p>druga linia</p> podziały: nie Akapitdruga linia
<p>Akapit</p><p>druga linia</p> podziały: tak Akapit ⏎ ⏎ druga linia
przed<script>var x=1;</script>po podziały: nie przedpo
przed<!-- notatka -->po podziały: nie przedpo
A &amp; B podziały: nie, encje: tak A & B
cena <100 zl i >50 zl podziały: nie cena 50 zl
5 < 6 i 7 > 3 podziały: nie 5 < 6 i 7 > 3

Bez opcji „Zachowaj podziały wierszy” tagi blokowe znikają bez śladu — sąsiednie słowa się sklejają (Akapitdruga linia). Do zamiany br, p, div, li, tr i h1–h6 na nowe linie służy właśnie ta opcja.

Warto wiedzieć — czyszczenie HTML z tekstu

Po co zdejmować tagi

Czysty tekst przydaje się do newsletterów, opisów produktów, analizy słów kluczowych, importów do CMS i wszędzie tam, gdzie znaczniki psują layout albo liczenie znaków. Narzędzie pracuje na żywo — wynik widzisz od razu, bez klikania.

Sklejone słowa? Włącz podziały

strip_tags() usuwa tagi, ale nie wstawia w ich miejsce spacji — „<p>Akapit</p><p>druga</p>” da „Akapitdrugadruga”. Opcja „Zachowaj podziały wierszy” zamienia br, p, div, li, tr i h1–h6 na nowe linie PRZED usunięciem tagów, więc struktura akapitów przetrwa.

Encje HTML

Po usunięciu tagów w tekście zostają zapisy typu &amp;, &nbsp; czy &#8217;. Opcja „Zamień encje HTML” dekoduje je znakami (ENT_QUOTES | ENT_HTML5, UTF-8) — przyda się, gdy tekst trafia do miejsca, które nie interpretuje encji (CSV, SMS, wyszukiwarka).

To nie jest „sanitizer”

Usunięcie tagów NIE czyni tekstu bezpiecznym do wyświetlenia jako HTML: strip_tags() nie waliduje niepełnego HTML (znak < potrafi zjeść fragment tekstu aż do następnego >). Jeśli wynik ma wrócić na stronę HTML, przepuść go przez htmlspecialchars() albo helper e() przed wypisaniem.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Usuwanie tagów HTML – konwersja HTML na czysty tekst

Usuwanie tagów HTML (HTML stripping) przekształca kod HTML na czysty tekst – przydatne przy przetwarzaniu treści web, migracjach CMS, przygotowywaniu tekstu do analizy NLP lub czyszczeniu danych. Narzędzie usuwa tagi, opcjonalnie dekoduje encje HTML (& → &,   → spacja) i normalizuje białe znaki.

usuń tagi HTML html strip online wyczyść HTML do tekstu HTML na tekst konwerter

Jak działa usuwanie tagów HTML

Algorytm: znajdź i usuń wszystko między < a > (regex lub parser DOM). Regex (prosty): /<[^>]+>/g. Parser DOM (bezpieczny): utwórz element, przypisz innerHTML, odczytaj textContent. Regex problemy: CDATA, komentarze HTML, zagnieżdżone cudzysłowy w atrybutach. Dla produkcji: zawsze parser DOM lub dedykowana biblioteka (DOMPurify, Sanitize.js).

Encje HTML do dekodowania

& → &. < → <. > → >. " → ". ' → '.   → spacja nierozdzielająca (U+00A0). © → ©. € → €. Numeryczne: © → © (decimal). © → © (hex). Narzędzie dekoduje encje po usunięciu tagów, zwracając naturalnie czytelny tekst.

Zastosowania

NLP i analiza tekstu: modele wymagają czystego tekstu bez HTML. Web scraping: BeautifulSoup .get_text(). Migracja treści: Drupal/WordPress export → czyść HTML. Porównywanie wersji: diff dwóch stron bez szumu tagów. Przeszukiwanie pełnotekstowe: Elasticsearch indeksuje czysty tekst. Email marketing: konwersja HTML emaila na plain text fallback.

Zachowanie struktury przy usuwaniu

Problem:

Akapit 1

Akapit 2

→ "Akapit 1Akapit 2" (bez spacji). Rozwiązanie: zamień </p>, </div>, <br> na \n przed usunięciem tagów.
  • → "\n• " dla list. Nagłówki <h1>–<h6> → zamień na tekst + newline. Narzędzie oferuje opcję zachowania podziałów wierszy.

  • Jak przebiega konwersja krok po kroku

    Konwersja przebiega w dwóch niezależnych etapach, które łatwo pomylić, a które odpowiadają za różne typy błędów. Pierwszy etap to skanowanie kodu i wyznaczanie granic znaczników. Parser przechodzi przez tekst znak po znaku i utrzymuje stan: jesteśmy wewnątrz znacznika czy poza nim. Znacznik otwiera znak <, zamyka >, a wszystko, co leży poza tymi nawiasami, trafia do bufora tekstowego. Parser rozpoznaje jednak również konstrukcje łamiące ten prosty podział: komentarze zaczynające się od <!--, sekcje CDATA, deklaracje typu <!DOCTYPE, instrukcje przetwarzania oraz atrybuty zawierające znak > wewnątrz cudzysłowu, na przykład <a title='a > b'>. Właśnie na takich przypadkach wykłada się dopasowanie wzorcem regularnym, które nie zna kontekstu cudzysłowów ani zagnieżdżeń.

    Drugi etap to dekodowanie encji i normalizacja białych znaków. Tekst zebrany w buforze zawiera jeszcze zapisy zastępcze, takie jak &nbsp; czy &amp;, i dopiero tutaj zamieniane są one na właściwe znaki. Kolejność ma znaczenie: dekodowanie wykonuje się po usunięciu znaczników, bo encja &lt; reprezentuje znak mniejszości, który po odszyfrowaniu stałby się potencjalnym początkiem znacznika. Odwrotna kolejność tworzyłaby fałszywe znaczniki, które trzeba by usuwać drugi raz. Na końcu następuje normalizacja: ciągi spacji, tabulatorów i znaków nowej linii są redukowane do pojedynczych separatorów, a tekst przycinany z obu brzegów.

    Trzeci element to decyzja o strukturze. Zanim znaczniki zostaną wycięte, narzędzie może oznaczyć miejsca po znacznikach blokowych i po elementach listy, wstawiając w ich miejsce separator. Dzięki temu akapity i pozycje listy nie zlewają się w jeden ciąg, a wynik nadaje się do dalszego przetwarzania bez ręcznego poprawiania. Gdy opcja zachowania podziałów jest wyłączona, wszystkie separatory są traktowane jak zwykłe białe znaki i tekst zostaje sklejony w jednej linii.

    Przykład: fragment artykułu z listą i komentarzem

    1. Wejście. Bierzemy fragment kodu: <div class='lead'><h2>Kawa</h2><p>Cena: 12,50&nbsp;zł &amp; rabat <strong>10%</strong></p><ul><li>Arabica</li><li>Robusta</li></ul><!-- stopka --></div>.
    2. Rozpoznanie granic znaczników. Parser pomija wszystkie konstrukcje od < do > i do bufora tekstowego trafiają tylko fragmenty: Kawa, Cena: 12,50&nbsp;zł &amp; rabat 10%, Arabica, Robusta.
    3. Obsługa komentarza. Sekwencja <!-- stopka --> jest usuwana w całości razem z zawartością, więc ani słowo stopka, ani same nawiasy nie pojawiają się w wyniku.
    4. Wstawienie separatorów. Przy włączonym zachowaniu podziałów znaczniki <h2>, <p> i <div> zamieniane są na znak nowej linii, a każdy <li> na nową linię z punktorem przed treścią pozycji.
    5. Dekodowanie encji. Zapis &nbsp; staje się zwykłą spacją, a &amp; zwykłym znakiem &amp;, po czym następuje redukcja powtarzających się spacji i przycięcie tekstu.
    6. Wynik. W pierwszym wierszu znajduje się Kawa, w drugim Cena: 12,50 zł &amp; rabat 10%, a w dwóch kolejnych Arabica i Robusta poprzedzone punktorem. Nagłówek nie różni się już formatowaniem od pozostałych linii, a komentarz zniknął bez śladu.

    Co dzieje się z poszczególnymi konstrukcjami

    Konstrukcja w kodzieDziałanie narzędziaEfekt w czystym tekście
    <div>, <p>, <br>zamiana na znak nowej linii przy włączonym zachowaniu podziałówakapity rozdzielone wierszami
    <li>wstawienie nowej linii i punktora przed treścią pozycjilista punktowana w tekście
    <h1> – <h6>tekst nagłówka plus znak nowej liniinagłówek jako osobny wiersz
    <script>, <style>usunięcie znacznika razem z całą zawartościąbrak kodu JavaScript i CSS w wyniku
    <!-- komentarz -->usunięcie całości, także tekstu wewnątrzbrak notatek technicznych i zakomentowanych fragmentów
    <a href='...'>usunięcie znacznika, zachowanie tekstu odnośnika, pominięcie adresusam opis linku, bez adresu URL
    encja &nbsp;zamiana na zwykłą spacjębrak twardych spacji blokujących zawijanie wiersza
    encje numeryczne, np. &#169; i &#x00A9;zamiana na znak o wskazanym kodzie Unicodesymbol zamiast kodu liczbowego

    Jak używać narzędzia, żeby wynik był użyteczny

    • Najpierw zdecyduj, czy układ ma znaczenie. Jeśli wynik ma być jednym ciągiem do dalszej analizy, wyłącz zachowanie podziałów i pozwól zredukować białe znaki. Jeśli wklejasz tekst do dokumentu, zostaw separatory bloków, bo bez nich akapity i pozycje listy zleją się w jedną linię.
    • Przy dużych plikach usuwaj znaczniki poza przeglądarką. Narzędzie w przeglądarce trzyma cały dokument w pamięci, co przy bardzo obszernych eksportach bywa odczuwalne. Dla hurtowej obróbki wygodniej wywołać ten sam mechanizm skryptem po stronie serwera.
    • Rozróżniaj usuwanie znaczników od sanityzacji. Stripping nie chroni przed niebezpiecznym kodem, bo po prostu go wycina. Jeśli tekst ma wrócić na stronę, przepuść go przez osobny mechanizm czyszczenia lub zamień znaki <, > i &amp; na encje.
    • Porównaj oba warianty normalizacji. Ta sama treść raz da zwarty blok tekstu, raz zachowa układ linii. Zestawienie obu wyników szybko pokazuje, czy w źródle nie ma pustych znaczników blokowych generujących zbędne wiersze.
    • Przechowuj wynik w UTF-8. Po dekodowaniu encji w tekście pojawiają się gotowe znaki Unicode, w tym polskie litery i symbole walut. Zapis w innym kodowaniu może je uszkodzić.

    Czego ta konwersja nie obejmuje

    • Treść generowana przez JavaScript. Parser widzi wyłącznie to, co znajduje się w pobranym kodzie. Tekst wstawiony do strony dynamicznie, po jej wczytaniu, nie trafi do wyniku, choćby był widoczny w przeglądarce.
    • Informacje zapisane w atrybutach. Tekst z title, alt czy value znika razem ze znacznikiem. Jeśli jest potrzebny, trzeba go wyciągnąć osobnym krokiem przed usunięciem tagów.
    • Układ tabel i złożonych komponentów. Z komórek powstaje ciąg tekstu, a przypisanie wartości do kolumn zależy wyłącznie od kolejności znaczników w źródle. Przy tabelach z nagłówkami i scalonymi komórkami wynik bywa mylący.
    • Niepoprawny HTML i encje bez średnika. Parser stosujący model DOM naprawia błędy po swojemu i domyka znaczniki według własnych reguł, a zapis typu &nbsp bez średnika bywa interpretowany inaczej niż oczekiwano. Wynik może więc różnić się od tego, co widać w przeglądarce.

    Najczęstsze pytania

    Jak usunąć tagi HTML w PHP?

    strip_tags($html): usuwa tagi HTML, opcjonalnie zachowuje wybrane. strip_tags($html, '


    ') zachowa p i br. html_entity_decode() po strip_tags() do dekodowania encji. Dla bezpieczeństwa: htmlspecialchars() do wyświetlania, DOMDocument do parsowania. Nie używaj regex do walidacji HTML w PHP – zbyt wiele edge cases.

    Jak usunąć tagi HTML w Python?

    BeautifulSoup: soup = BeautifulSoup(html, "html.parser"); soup.get_text(). lxml: lxml.html.fromstring(html).text_content(). Regex (ostrożnie): import re; re.sub("<[^>]+>", "", html). Markdownify: konwersja HTML na Markdown (zachowuje strukturę). html2text: HTML na plain text z zachowaniem formatowania.

    Jak usunąć tagi HTML w JavaScript?

    DOM: document.createElement("div"); el.innerHTML = html; return el.textContent. DOMParser: new DOMParser().parseFromString(html, "text/html").body.textContent. Regex: html.replace(/<[^>]*>/g, ""). Striptags (npm): bezpieczna biblioteka. Sanitize-html (npm): usuwa niebezpieczne tagi, zachowuje wybrane.

    Czy usuwanie tagów HTML jest bezpieczne?

    Ryzyko: po usunięciu tagów = "alert(xss)" – tekst, nie kod. Ale: jeśli wynik trafia z powrotem do HTML bez escaping = XSS. Bezpieczna praktyka: strip tags → encode result (htmlspecialchars) przed wyświetleniem w HTML. Nie ufaj wyniku jako bezpiecznemu HTML.

    Jak zachować formatowanie przy konwersji HTML na email?

    HTML email → plain text fallback: zamień
    na \n,

    na \n\n, tekst na *tekst*, tekst na "tekst (URL)". Biblioteki: Mailchecker, html-to-text (npm), premailer (Ruby). Plain text email: alternatywna wersja MIME multipart/alternative wymagana przez Email on Acid i Litmus.

    Czym różni się usuwanie tagów HTML od sanityzacji?

    Usuwanie tagów wyprowadza z kodu sam tekst i nie interesuje się tym, czy znaczniki były bezpieczne. Sanityzacja zostawia część znaczników, ale odrzuca te, które mogą być groźne. Do wyświetlania treści w przeglądarce potrzebna jest sanityzacja, do analizy tekstu wystarczy stripping.

    Czy narzędzie usunie treść ze znaczników script i style?

    Tak. Zawartość tych znaczników nie jest traktowana jako tekst widoczny dla czytelnika, więc znika razem z otoczką i nie zaśmieca wyniku wstawkami kodu. To jeden z powodów, dla których warto używać parsera zamiast prostego wzorca regularnego.

    Dlaczego w wynikowym tekście pojawiają się puste wiersze?

    Najczęściej odpowiadają za to puste znaczniki blokowe, kilka znaczników <br> obok siebie albo wcięcia między znacznikami w źródle. Opcja normalizacji białych znaków redukuje takie ciągi, ale całkowicie ich nie usuwa, jeśli w kodzie były realne puste elementy.

    Czy wynik mogę bezpiecznie wkleić z powrotem na stronę internetową?

    Nie bez dodatkowego kroku. Otrzymany tekst jest zwykłym tekstem, ale może zawierać znaki <, > i &amp;, które w kontekście HTML mają znaczenie składniowe. Przed wstawieniem na stronę zamień je na encje albo użyj mechanizmu czyszczenia danych wejściowych.

    Co się dzieje z numeracją listy zamówionej?

    Znaczniki <ol> i <li> nie niosą w sobie informacji o numerze pozycji, więc po konwersji zostaje sam separator lub punktor, bez odtworzonej numeracji. Jeśli numery są potrzebne, trzeba je dopisać ręcznie lub wygenerować na podstawie kolejności pozycji.

    Powiązane narzedzia: formatowanie HTML, koder encji HTML i konwerter HTML na Markdown.

    Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!