【问题标题】:Dynamically creating preg pattern?动态创建 preg 模式?
【发布时间】:2014-03-10 22:05:38
【问题描述】:

你好。

我想尝试做一个 BBCode 解析器,据我所知,preg 函数是最方便查找和用 html 替换 bbcode 的。

过去我一遍又一遍地使用了很多 str_replace,效率不高。

我想创建一个 BBCode 并将其存储在 DB 中,所以给定 BBCode 结构:

[image]{URL}[/image]

和 HTML:<img src="{URL}" alt="" .. />

如何使用 PHP 比较这两个输入,并在解析内容中的 BBcode 时找到必要的 preg 模式?

我想要实现的是数据库也存储这个模式,当需要为 bbcodes 解析大文本时,它会确切地知道如何去做。没有硬编码。

我搜索了一下,试图找到这方面的相关主题,但我只能找到关于如何解析 url bbcode 等的确切模式,如果这确实存在于某个地方,请原谅我。 p>

【问题讨论】:

    标签: php html parsing preg-match bbcode


    【解决方案1】:

    将正则表达式和替换模式存储在数据库中:

    regExp: \[image\](.*?)\[/image\]
    replacement: <img src="$1"/>
    

    然后稍后从数据库中检索这些并以它们作为参数调用preg_replace()。请注意,您应该能够通过一次调用来完成,因为您可以将正则表达式和替换指定为数组,并且它会一次执行所有这些操作。

    【讨论】:

    • 非常感谢。我已经把它作为我的基础。我现在有东西工作了。我唯一的问题是如果我在 bbcode 中有几个变量,比如 {URL} 和 {TEXT},用 $1 和 $2 替换它们,它们在解析时有时会以错误的顺序出现。但我想一旦我专注于它,这很容易解决。 :)
    • 您可能想寻找更强大的模板系统。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 2020-05-22
    • 2011-11-14
    • 2015-10-04
    相关资源
    最近更新 更多