PHP 维基标记解析器

标签 php parsing wiki markup

有人告诉我,用 PHP 编写依赖于正则表达式和 preg 函数的 wiki 标记解析器是个坏主意。但我不知道为什么。

那么用 PHP 编写 wiki 标记解析器的最佳方法是什么?这比其他任何东西都更像是一个学术“项目”,所以重点是我自己写。

预先感谢您的帮助。

最佳答案

有人告诉你,至少可以说,“维基语言”定义不当
真正糟糕的部分是“试图解析”它们,而不是“使用 php 和正则表达式”

事实上,我相信它们实际上是用正则表达式处理的 (直接进入 html,没有从中间抽象语法树表示传递) 在像 mediawiki。没有正则表达式的 AFAIK 实际解析在 PHP 中效率很低。 (除非您使用特定的已编译 PHP 模块进行解析)

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

只是真正的麻烦?你必须使用大量转义符来解析像 [] 这样的字符,当你在 preg_match() 中使用许多反斜杠时很容易混淆> 和 php。除此之外,一个简单的 preg_match_all('#\\[\\[(.*?)\\]\\]#',$data,$matches,PREG_SET_ORDER); 应该让你起来和运行。

(除非我被太多级别的反斜杠弄糊涂了,也就是说) :)

关于PHP 维基标记解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7019842/

相关文章:

php - 在插件激活上创建页面时遇到问题

JavaScript 不适用于隐藏和显示文本框

php - 使用 PDO 准备语句插入多行

python - 使用 pyparsing 将文本分割成行

Python 2.7 解析数据

wiki - wiki 使用什么方法来合并并发编辑?

commit - 克隆和提交 BitBucket 项目的 "Wiki"存储库的最佳实践

php - 数组作为 session 变量

Java Byte.parseByte() 错误

mysql - 将 MySQL 模式转换为 Github Wiki?