我有一组基于文本的规则,其结构如下:
规则一:当[PN]大于[N]时做[XXX] 规则 2:获取 [PRD ..] 并添加 [X.XX]
与此相关的是一组数据,它将每个分组的代码转换为 CSS 类 ID(用于 jQuery)。
我还有一个从 [ code ] 到 ID 的翻译数组,存储在一个简单的结构化数组中,如下例所示:
$translate = array(
'XXX' => 'gen-string-input',
'PN' => 'gen-positivenumber-input',
'N' => 'gen-number-input'
);
重要的是可以实现以下目标:
我需要用结构如下的 span 标签 替换 [ code ] 的每个实例:
<span class="[classname]" unique="[hash]" offset="[offset]">[CODE]</span>
这是假设字段是
- classname是 $translate 数组的结果
- hash是一个 md5 散列,对于每个规则都是静态的
- offset是字段在字符串中的位置(例如,在第一个示例中,字段[XXX]位于位置 0,[PN]位于位置 1,依此类推)。
基于此信息,我希望为Rule 1实现以下输出:
<p>
Do <span class="gen-string-input"
unique="[md5]"
offset="0">[XXX]</span>
when <span class="gen-positivenumber-input"
unique="[md5]"
offset="1">[PN]</span>
greater than <span class="gen-number-input"
unique="[md5]"
offset="2">[N]</span>
</p>
非常感谢任何帮助,我目前正在使用 str_replace 来尝试实现这一目标,但这还不够好。