gpt4 book ai didi

php - bbcode 解析器正则表达式帮助

转载 作者:行者123 更新时间:2023-12-02 07:29:38 30 4
gpt4 key购买 nike

我有这个函数来解析 bbcode -> html:

  $this->text = preg_replace(array(
'/\[b\](.*?)\[\/b\]/ms',
'/\[i\](.*?)\[\/i\]/ms',
'/\[u\](.*?)\[\/u\]/ms',
'/\[img\](.*?)\[\/img\]/ms',
'/\[email\](.*?)\[\/email\]/ms',
'/\[url\="?(.*?)"?\](.*?)\[\/url\]/ms',
'/\[size\="?(.*?)"?\](.*?)\[\/size\]/ms',
'/\[youtube\](.*?)\[\/youtube\]/ms',
'/\[color\="?(.*?)"?\](.*?)\[\/color\]/ms',
'/\[quote](.*?)\[\/quote\]/ms',
'/\[list\=(.*?)\](.*?)\[\/list\]/ms',
'/\[list\](.*?)\[\/list\]/ms',
'/\[\*\]\s?(.*?)\n/ms'
),array(
'<strong>\1</strong>',
'<em>\1</em>',
'<u>\1</u>',
'<img src="\1" alt="\1" />',
'<a href="mailto:\1">\1</a>',
'<a href="\1">\2</a>',
'<span style="font-size:\1%">\2</span>',
'<object width="450" height="350"><param name="movie" value="\1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="\1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="450" height="350"></embed></object>',
'<span style="color:\1">\2</span>',
'<blockquote>\1</blockquote>',
'<ol start="\1">\2</ol>',
'<ul>\1</ul>',
'<li>\1</li>'
),$original);

问题是,如何解析它,比如 html -> bbcode?

我的正则表达式技能很差:(

谢谢。

最佳答案

不要。

相反,存储原始未解析的文本和处理已解析的文本。是的,这使存储要求增加了一倍,但也使其非常容易:

  1. 允许用户编辑原始内容,而无需解析 BBCode
  2. 允许引用其他用户帖子,同样无需解析
  3. 更改每个 BBCode 生成的 HTML(只需重新解析每个帖子)
  4. 切换 BBCode 引擎(同样,只需重新解析每个帖子)

关于php - bbcode 解析器正则表达式帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3272439/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com