---
title: "Tillåta viss html-kod"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/173970-tillåta-viss-html-kod"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Asa"
published: "2008-09-10T19:30:53.000Z"
updated: "2008-09-18T20:06:45.000Z"
replies: 9
views: 816
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/173970-tillåta-viss-html-kod"
---

# Tillåta viss html-kod

## #1 — Asa, 2008-09-10T19:30Z

Jag vill kunna tillåta viss html-kod på en sida. Och resten skall ej vara tillåtet och visas med ex *\<b\> ... \</b\>*

```
<?php
function fixCode($sHTML){
	$sHTML=ereg_replace("<bla>","<font color='blue'>",$sHTML);
	$sHTML=ereg_replace("</bla>","</font>",$sHTML);
	$sHTML=ereg_replace("<lila>","<font color='purple'>",$sHTML);
	$sHTML=ereg_replace("</lila>","</font>",$sHTML);
	$sHTML=ereg_replace("<kursiv>","<i>",$sHTML);
	$sHTML=ereg_replace("</kursiv>","</i>",$sHTML);
	return $sHTML;
}
$strangen = "<b>Hej</b> - <kursiv>Hejsan</kursiv>";
echo fixCode($strangen);
?>
```

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

## #2 — überfuzz, 2008-09-11T12:57Z

Vill du ha hjälp med något?

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

## #3 — Asa, 2008-09-11T13:20Z

Ja, jag vill kunna ha en spärr för all htmlkod utan den kod som jag själv väljer skall tillåtas. Ska även kunna föra som ovan och ge egna koder för ex kursiv stil m.m

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

## #4 — Nate.A, 2008-09-11T15:26Z

Det finns en inbyggd funktion som heter strip_tags(), man kan även ange taggar som tillåts. Vet dock inte vad den funktionen gör med dina specialtaggar...

<http://se.php.net/manual/en/function.strip-tags.php>

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

## #5 — überfuzz, 2008-09-11T21:13Z

Jag har inget på lager, men du kan ju testa att byta ut det som matchar i strängarna.

```php
$match = array('<font','</font>','<i>','</i>');
$replace = '';//vet inte om du vill ha något, peta in det i sa fall?
function html_cleaner($text,$replace,$match)
{
         $text = str_replace($match,$replace,$text);
return $text;
}
```

Koden är helt otestad.

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

## #6 — SuPeR_ToBBe, 2008-09-18T12:26Z

Denna funktionen fungerar så länge det inte är några attribut på din "HTML"-kod.

```php
<?php

/**
 * Tags to replace inside prettify-function
 */
$prettify_tags = array(
    'bla'    => '<font color="blue">$1</font>',
    'lila'   => '<font color="purple">$1</font>',
    'kursiv' => '<i>$1</i>',
);

/**
 * Prettify text
 * 
 * @param Unsafe string, input
 * @param Charset to use for htmlspecialchars
 * @param Quote style to use for htmlspecialchars, default no escape of quotes
 * @return Safe string
 */
function prettify($us, $charset = 'ISO-8859-1', $quote_style = ENT_NOQUOTES)
{
    global $prettify_tags; // This should really be a class, but global works

    // Always escape HTML
    $s = htmlspecialchars($us, $quote_style, $charset);

    foreach ($prettify_tags as $tag => $replace) {
        // &lt; and &gt; because the < and >'s are escaped above
        $s = preg_replace("@&lt;$tag&gt;(.*?)&lt;/$tag&gt;@", $replace, $s);
    }

    return $s;
}
```

En liten test-suite:

```php
<?= prettify('<kursiv>Kursiv text</kursiv> <b>Fet text</b><script>alert("XSS!!!!");</script><bla>Blå text</bla>') ?>

=>
<i>Kursiv text</i> &lt;b&gt;Fet text&lt;/b&gt;&lt;script&gt;alert("XSS!!!!");&lt;/script&gt;<font color="blue">Blå text</font>
```

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

## #7 — Asa, 2008-09-18T12:36Z

Tackat så mycket alla

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

## #8 — SuPeR_ToBBe, 2008-09-18T12:43Z

Som ett svar på din fråga (applicerat i ovanstående funktion):

Steg 1: escapea all HTML.
Steg 2: gå igenom varje tagg och ändra &lt;tagg&gt; (escapeade \<\>) till \<riktig html-tagg\>\</riktig html-tagg\>.
Steg 3: skriv ut den nya strängen.
Steg 4: det finns inget steg fyra. (Vidareutveckling kan dock vara att steg tre blir "kolla så att **\<bla\>textsom ska bli\<lila\>lila\</bla\> men som ska bli blå\</lila\>** inte funkar, eller funkar bättre")

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

## #9 — überfuzz, 2008-09-18T19:20Z

Just fan, min kod kollar ju inte fall strängen innehåller fel antal taggar. Det kan ställa till hela sidan. Sorry!

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

## #10 — Asa, 2008-09-18T20:06Z

Ibland kan det bli lite fel men sånt som händer. Tack allesammans..

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

---

Tråden på webben: https://www.webforum.nu/amne/php/173970-tillåta-viss-html-kod
