【问题标题】:How to create my own 'Smarty' like tags如何创建我自己的类似“Smarty”的标签
【发布时间】:2011-10-20 09:39:07
【问题描述】:

以下最简单的方法是什么

查看一段文本,并在它找到的任何地方 %sometxt% 用其他内容替换它,

所以基本上任何包含在一组百分比符号中的文本都类似于 Smarty 的做法?

【问题讨论】:

  • 如果文本包含两个% 字符,例如“Reiku 50% vs. Razor 80%”?你能定义什么是“sometxt”吗?

标签: php preg-replace templating


【解决方案1】:

您要求的最简单的方法

$blockOfText = str_replace('%sometxt%', 'something else', $blockOfText);

您只需将其替换为 str_replace

【讨论】:

    【解决方案2】:
    $newText = preg_replace('/%.+?%/', 'replacedText', $text);
    

    应该这样做。 replacedText 需要是您想要替换 %sometxt% 的任何内容。

    正则表达式%.+?% 表示

    罚款% 符号,后跟任何字符,直到我找到另一个% 符号。

    ? 使表达式“惰性”,因此它将匹配到第一次出现的 %

    【讨论】:

    • 为什么要使用i 修饰符?由于您匹配所有字符,因此无需忽略大小写?
    • 为了匹配实际标签,他应该在表达式中的 % 符号之间添加实际变量文本。此外,您的表达式现在使用 % 符号作为分隔符。最后,通过传递模式数组和替换数组,可以使用单个方法调用进行多次替换。
    • 啊哈,你想让% 成为分隔符吗?还是你错过了? :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    相关资源
    最近更新 更多