Sida 1 av 1

Gör en enkel funktion för BBCode formattering

InläggPostat: 16 apr 2012, 17:50
av mos
Här är en enkel funktion som bygger på reguljära uttryck om implementerar BBCode i din webbplats.

function bbcode2html($text)
Kod: Markera allt
/**
* Helper, BBCode formatting converting to HTML.
*
* @param string text The text to be converted.
* @returns string the formatted text.
*/
function bbcode2html($text) {
  $search = array(
    '/\[b\](.*?)\[\/b\]/is',
    '/\[i\](.*?)\[\/i\]/is',
    '/\[u\](.*?)\[\/u\]/is',
    '/\[img\](https?.*?)\[\/img\]/is',
    '/\[url\](https?.*?)\[\/url\]/is',
    '/\[url=(https?.*?)\](.*?)\[\/url\]/is'
    );   
  $replace = array(
    '<strong>$1</strong>',
    '<em>$1</em>',
    '<u>$1</u>',
    '<img src="$1" />',
    '<a href="$1">$1</a>',
    '<a href="$1">$2</a>'
    );     
  return preg_replace($search, $replace, $text);
}


Du kan testa funktionen för bbcode här eller följande länk med förifyllt innehåll.

Re: Gör en enkel funktion för BBCode formattering

InläggPostat: 30 apr 2018, 17:29
av mos
Artikeln som finns i Tips från Coachen "Reguljära uttryck i PHP ger BBCode formattering" fick en uppdatering.

Koden ser nu ut så här (ungefär som tidigare).

Kod: Markera allt
/**
* Helper, BBCode formatting converting to HTML.
*
* @param string text The text to be converted.
*
* @returns string the formatted text.
*/
function bbcode2html($text) {
    $search = [
        '/\[b\](.*?)\[\/b\]/is',
        '/\[i\](.*?)\[\/i\]/is',
        '/\[u\](.*?)\[\/u\]/is',
        '/\[img\](https?.*?)\[\/img\]/is',
        '/\[url\](https?.*?)\[\/url\]/is',
        '/\[url=(https?.*?)\](.*?)\[\/url\]/is'
    ];

    $replace = [
        '<strong>$1</strong>',
        '<em>$1</em>',
        '<u>$1</u>',
        '<img src="$1" />',
        '<a href="$1">$1</a>',
        '<a href="$1">$2</a>'
    ];

    return preg_replace($search, $replace, $text);
}