【发布时间】:2012-05-10 14:40:23
【问题描述】:
所以在我的 PHP 代码中我有一个这样的字符串;
The quick brown {{fox($a);}} jumped over the lazy {{dog($b);}}.
现在听起来可能很奇怪,但我想遍历字符串,收集所有 BBCode 样式标签。
然后我想eval(){{}} 中的所有函数。所以我会评估fox($a); 和dog($b);。
这两个函数都返回一个字符串。我想用各自的结果替换各自的标签。所以假设fox() 返回“vulpes vulpes”,dog() 返回“canis lupus”,我的原始字符串应该是这样的;
The quick brown vulpes vulpes jumped over the lazy canis lupus.
但是,众所周知,我的正则表达式很糟糕,我不知道该怎么做。
欢迎任何建议!
(是的,我知道happy-go-lucky eval()ing 的危险。但是,这些字符串完全来自开发人员,任何用户都无法评估任何内容。)
【问题讨论】:
-
你的财富 preg_replace_callback
-
我将这个问题的标题读作“匹配邪恶并替换”。然后看到上面写着BBCode,觉得有点合适。
-
罗伯特,我同意你的评论。
标签: php regex replace eval bbcode