Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] jak zamknąć otwarte tagi html?
wilman
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 11.02.2007

Ostrzeżenie: (0%)
-----


Witam!
W jaki sposób mogę napisać funkcję, która sprawdzi, czy w podanym ciągu znajdują sie niezamknięte tagi html (np. takie jak <b>) i jeżeli takowe znajdzie, to zamknie je na końcu zmiennej ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował wilman 24.12.2007, 01:25:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Black-Berry
post
Post #2





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Takie coś (jeśli zależy ci na profesjonalnym rozwiązaniu) robi się za pomocą stosu. Podaję opisowy algorytm:
  • 1. Wyszukujesz znak "<"
  • Jeśli przed zakończeniem ">" nie występuje znak "/" (np. <br/>) to wstawiasz to co pomiedzy "<" a ">" na stos.
  • 3. Jeśli napotkasz tag konczoncy "</" wtedy to co pomiedzy "</" a ">" usuwasz ze stosu. Jeśli element na stosie nie odpowiada nowo znalezionemu elementowi kończącemu oznacza to błąd zamknięcia w tym miejscu.

Nie jest to kompletny algorytm ale idea zachowana. Jesli to rozbudujesz będziesz miał dość dobry walidator niezamkniętych tagów.

Pozdrawiam.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 23:48