I wanted to make a PHP function that would make text bold between double asterisks, and italic between one asterisk, (quite like the editor on stackoverflow).
Same rules apply, if there's a space between the * and the word, it shouldn't render.
Who can help me out? I tried to, but I only came this far, as I don't know how to make the odd asterisks "< b >" and the even ones "< /b >".
(I can't type them without the spaces, stackoverflow will render the text between as bold.....)
$thenewtext = str_replace("**", "<b>", "**Hello World** of PHP");
A simple regex will do the trick:
$thenewtext = preg_replace('#\*{2}(.*?)\*{2}#', '<b>$1</b>', '**Hello World** of PHP');
I am not too familiar with it but you are going to need a Regular Expression. Look into preg_replace()
I recently implemented a server-side text highlighting system to complement jQuery UI's AutoComplete.
My adaptation of your idea would be something like this:
$txt = 'not bold [BeginBold]Yes Bold[EndBold] not bold again';
$newtxt = str_replace("[BeginBold]", "<b>", $txt);
$newtxt = str_replace("[EndBold]", "</b>", $txt);
echo $newtxt;
this would produce:
not bold Yes Bold not bold again
来源:https://stackoverflow.com/questions/19253840/make-text-between-asterisks-bold