---
title: "Filtrera bort vissa HTML-taggar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/14803-filtrera-bort-vissa-html-taggar"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Swey"
published: "2000-09-15T23:56:00.000Z"
updated: "2000-09-17T18:24:00.000Z"
replies: 7
views: 234
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/14803-filtrera-bort-vissa-html-taggar"
---

# Filtrera bort vissa HTML-taggar

## #1 — Swey, 2000-09-15T23:56Z

Hej,
Hur kan man på ett enkelt sätt med reguljära uttryck filtrera bort vissa HTML-taggar och ersätta med \< respektive \>?

Om jag vill tillåta \<b\> och \<i\> ska alla andra ersättas med \<någonting\>.

Går detta att lösa på ett enkelt och snabbt sätt?

Permalänk: https://www.webforum.nu/p/14803

## #2 — Kim, 2000-09-16T08:11Z

Kanske inte det smidigaste men borde du inte kunna göra så här?

```
$content = str_replace ( "<" , "<" , $content );
$content = str_replace ( ">" , ">" , $content );

$content = str_replace ( "<b>" , "<b>;" , $content );
```

Är som sagt absolut inte det smidigaste, men du får väl tänka själv också ;)

Permalänk: https://www.webforum.nu/p/312151

## #3 — Swey, 2000-09-16T13:07Z

Jo, men jag tänkte om det gick att lösa med reguljära uttryck på ett smidigt sätt. Är inte så bra på just det. :)

Permalänk: https://www.webforum.nu/p/312152

## #4 — JaktJanne, 2000-09-16T16:23Z

Vet ej om detta går men i Notepad har du funktionen \*Replace..\* eller något sådant. Kam du inte göra det där :q

Permalänk: https://www.webforum.nu/p/312153

## #5 — Kim, 2000-09-16T16:52Z

Han vill nog att det ska göras automatiskt på inlägg från t.ex. en gästbok. Detta för att man inte ska kunna lägga in exempelvis en H1-tagg och förstora texten enormt.

Permalänk: https://www.webforum.nu/p/312154

## #6 — Robban, 2000-09-17T16:34Z

Om $str innehåller strängen som skall filtreras:

```
$str = preg_replace("#<((?!(/?b>&#0124;/?i> )).*?)>#i", "<\\1>", $str);
```

(Observera att webForums script stoppar in ett mellanslag mellan ?i\> och ) \- det skall inte vara där).

Permalänk: https://www.webforum.nu/p/312155

## #7 — Swey, 2000-09-17T17:46Z

Tack, Robban... det fungerade fint!

Men nu verkar det som om \<b\> eller \<i\> påverkar all text efteråt. Det spelar ingen roll om \<i\> står i en egen cell.

Går det att fixa så att sluttag krävs på nått sätt?

Permalänk: https://www.webforum.nu/p/312156

## #8 — Robban, 2000-09-17T18:24Z

Nu börjar vi komma in på områden där en parser skulle fungera bättre. Men prova följande (inte fullt testat):

```
$patterns = array("#<((?!(/?b>&#0124;/?i> )).*?)>#i", "#<(b&#0124;i)>(?!.*?</\\1> )#i");
$replacements = array("<\\1>", "<\\1>");
$str = preg_replace($patterns, $replacements, $str);
```

(Samma sak här - forumscriptet petar in ett mellanslag mellan **\>** och **)** som måste tas bort för att det skall fungera).

Permalänk: https://www.webforum.nu/p/312157

---

Tråden på webben: https://www.webforum.nu/amne/php/14803-filtrera-bort-vissa-html-taggar
