Search code examples
phpregexreplacemarkdownbold

Replace double asterisk markdown with <b> tags


With this function:

function bbcode_parse($str) {
    $str = htmlentities($str);

    $find = array(  
        '/\\*\*(.[^*]*)\*\*/is',
    );

    $replace = array(
        '<b>' 
    );

    $str = preg_replace($find, $replace, $str);  
    return $str;
}

And with text My name is **bob**, I get in source code Hi my name is <b>.


Solution

  • (In bbcode you bold text with [b]xxx[/b] not **xxx**.)

    In PHP, you can use $1 to represent the captured subgroup, so your replacement should be

    '<b>$1</b>'