---
title: "\"BBcode\""
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/107429-bbcode"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "filipbh"
published: "2004-07-15T22:09:27.000Z"
updated: "2004-07-21T15:10:08.000Z"
replies: 14
views: 851
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/107429-bbcode"
---

# "BBcode"

## #1 — filipbh, 2004-07-15T22:09Z

Hur nekar man till vanlig HTML-kod och istället använder s.k. "BBcode"/webForum-kod?

Måste man lägga till en kod för varje "händelse" sen? Alltså lägga till så att t.ex.  **blir \<b\> på alla möjligheter?

Känner att det var dåligt förklarat  :l**

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

## #2 — Matte, 2004-07-16T07:46Z

Japp, du får sedan kolla "kod för kod" typ:

```php
$text = preg_replace("/\\[b](.*?)\\[\\/b]/is", "<b>$1</b>", $text);
```

 
Lämpligtvis lägger du det i arrayer:

```php
$pattern = array (
   "/\\[b](.*?)\\[\\/b]/is",
   "/\\[i](.*?)\\[\\/i]/is",
   "/\\[u](.*?)\\[\\/u]/is"
);
$replace = array (
   "<b>$1</b>",
   "<i>$1</i>",
   "<u>$1</u>"
);

$text = preg_replace($pattern, $replace, $text);
```

Innan du gör detta kanske du vill "ta bort" HTML-kod. Enklast gör du detta genom att göra om taggarna till entiteter. Du måste göra det innan du kör koden som gör om din bbcode, och då gör du något i den här stilen:

```php
$text = htmlentities($text);
```

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

## #3 — filipbh, 2004-07-19T15:07Z

Har bara hunnit testa htmlentities och den fungerar inte som jag vill.. Det jag har nu är:

```php
$gbtext = $rad[text];
$gbtext = htmlentities($gbtext);
echo $gbtext;
```

Den ligger alltså så att den gör detta när texten skrivs ut.. Ska man ha den när meddelandet sparas istället?

Kan man ha:

```php
$gbtext = $rad[text];
$gbtext = htmlentities($gbtext);
$gbtext = nl2br($gbtext);
echo $gbtext;
```

Eller blir det fel om man kör både nl2br och htmlentities?

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

## #4 — Matte, 2004-07-19T16:02Z

Du kan ha både htmlentities och nl2br, men du måste, precis som du gjort, ha htmlentities före nl2br.

Du kan gott spara texten i sitt "råformat". Det gör det lättare om man t.ex. skulle vilja gå in och ändra på texten.

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

## #5 — filipbh, 2004-07-21T12:47Z

Det fungerar bra =) Om jag vill ha en tagg som heter "color" och genererar rgb-färger, hur gör jag då?

T.ex Text blir \<font color="#F3C5DB"\>Text\</font\> Själv color-taggen är ju som de andra men att textens färg blir colors "värde".

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

## #6 — Matte, 2004-07-21T13:02Z

T.ex

```php
$text = preg_replace("/\\[color=([0-9a-f]+)](.*?)\\[\\/color]/is", '<span style="color:#$1">$2</span>', $text);
```

 
Kör detta efter htmlentities().

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

## #7 — filipbh, 2004-07-21T14:22Z

Det här kommer upp när jag kör color-koden:

Warning: Unknown modifier 'c' in /customers/divisionsthlm.se/divisionsthlm.se/httpd.www/gastbok.php on line 218

Rad 218: $gbtext = preg_replace($pattern, $replace, $gbtext);

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

## #8 — filipbh, 2004-07-21T14:25Z

Förlåt det hade försvunnit en "\\"... Men det är ett annat fel. 

Jag skrev ett inlägg med denna text: Färgad text

Resultatet blev: F&aum;rgad text där F&aum; var färgad men resten vit som övriga texten...

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

## #9 — Matte, 2004-07-21T14:36Z

Det fungerar utmärkt när jag testar:

```php
$text = "
Hej hopp
qwerty [color=F3C5DB]Färgad text[/color]
asdfgh
";

$text = htmlentities($text);

$pattern = "/\\[color=([0-9a-f]+)](.*?)\\[\\/color]/is";
$replace = '<span style="color:#$1">$2</span>';
$text = preg_replace($pattern, $replace, $text);

echo nl2br($text);
```

\[EDIT\]
Ursäkta, glömmer alltid bort att jag behöver ha dubbla backslash i regexpar för att forumet inte ska rensa bort dom.

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

## #10 — filipbh, 2004-07-21T14:40Z

Warning: Unknown modifier 'c' in /customers/divisionsthlm.se/divisionsthlm.se/httpd.www/testDSC.php on line 12

kommer upp.. Men det verkar som att wF tar bort vissa "\\"...

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

## #11 — filipbh, 2004-07-21T14:44Z

Så här ser det ut för mig...

Bilagor:

- [dsc.jpg](https://www.webforum.nu/a/3990.jpg)

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

## #12 — Matte, 2004-07-21T14:52Z

Glömmer hela tiden att forumet rensar bort backslash om man inte skriver dom dubbelt i regexpar :)

Har fixat till koden ovan.

Kan du visa din kod som ger det resultatet ?

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

## #13 — filipbh, 2004-07-21T14:55Z

Skickar det i en textfil så att alla tecken kommer med...

Bilagor:

- [wf.txt](https://www.webforum.nu/a/3991.txt)

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

## #14 — Matte, 2004-07-21T15:03Z

Ändra

```php
"/\\[color=([0-9A-F]+)](.*?)[\\/color]/is",
```

 
till

```php
"/\\[color=([0-9A-F]+)](.*?)\\[\\/color]/is",
```

Alltså lägg till backslash före \[\\/color\].

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

## #15 — filipbh, 2004-07-21T15:10Z

Nu fungerar det perfekt! 

Tack för all hjälp...

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

---

Tråden på webben: https://www.webforum.nu/amne/php/107429-bbcode
