如何用html标签替换特殊字符

我遇到了挑战,我想找到 2 个特殊字符之间的所有字符串,并用一些 html 标签替换特殊字符。例如,

$str = "dog *cat* ping goat *pizza* cow rabbit*";

我想要一个函数从字符串中获取 - cat 和 Pizza 然后返回

$str = "dog <strong>cat</strong> ping goat <strong>pizza</strong> cow rabbit*";

请注意,它cow rabbit被忽略,因为字符串中没有开头 *。

我本质上想做的是根据这个 WhatsApp 文档 - https://faq.whatsapp.com/general/chats/how-to-format-your-messages/找到字符串之间的特殊格式字符并替换为 HTML相等的。

我该如何实现这一目标?


慕标琳琳
浏览 78回答 1
1回答

开心每一天1111

他的函数str_replace_first仅替换第一个匹配的字符串,并使用substr_count函数来了解字符串中还剩下多少特殊字符,我编写了这个简单的代码:function str_replace_first($from, $to, $content){    $from = '/'.preg_quote($from, '/').'/';    return preg_replace($from, $to, $content, 1);}$str = "dog *cat* ping goat *pizza* cow *rabbit";$Open_OR_Closed_Tag = false;  // this for to know what tag should putwhile (substr_count($str, '*') > 1 || $Open_OR_Closed_Tag) {    if ($Open_OR_Closed_Tag) {        $str = str_replace_first("*", "</strong>", $str);        $Open_OR_Closed_Tag = false;    } else {        $str = str_replace_first("*", "<strong>", $str);        $Open_OR_Closed_Tag = true;    }}echo $str; // dog <strong>cat</strong> ping goat <strong>pizza</strong> cow rabbit*
打开App,查看更多内容
随时随地看视频慕课网APP