PHP wiki标记解析器

Vet*_*elS 5 php markup wiki parsing

我被告知在PHP中编写一个依赖于正则表达式和preg函数的wiki标记解析器是一个坏主意.但我不知道为什么.

那么在PHP中编写wiki标记解析器的最佳方法是什么?这是一个学术性的"项目",而不是其他任何东西,所以重点是自己写.

在此先感谢您的帮助.

ZJR*_*ZJR 4

有人告诉您,因为至少可以说“维基语言”的定义不明确。
真正糟糕的部分是“尝试解析”它们,而不是“使用 php 和 regexps”

事实上,我相信它们实际上是在mediawiki等软件中使用正则表达式进行处理的 (直接转换为 html,而不通过中间抽象语法树表示)。而且据我所知,在 PHP 中,没有正则表达式的实际解析效率相当低。(除非您使用特定编译的 PHP 模块进行解析)

请注意,这些软件还具有许多可以按需激活的语法功能,但可能很难有效编写。

只有真正的麻烦吗?你必须使用很多转义符来解析像[and 这样的字符,当你在and]中使用很多反斜杠时很容易混淆。preg_match()除此之外,一个简单的操作preg_match_all('#\\[\\[(.*?)\\]\\]#',$data,$matches,PREG_SET_ORDER);就可以让您启动并运行。

(除非我对太多级别的反斜杠感到困惑,那就是) :)