Make text between asterisks bold

[亡魂溺海] 提交于 2019-11-26 23:28:54

问题


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");

回答1:


A simple regex will do the trick:

$thenewtext = preg_replace('#\*{2}(.*?)\*{2}#', '<b>$1</b>', '**Hello World** of PHP');



回答2:


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!