【问题标题】:how to replace the hashtagged text in sequence using preg_replace(_callback)如何使用 preg_replace(_callback) 按顺序替换带有标签的文本
【发布时间】:2011-12-23 16:37:34
【问题描述】:

目标文本类似于:

Lorem ipsum dolor #sit# amet, consectetur #adipisicing# elit, sed do #eiusmod# tempor incididunt ut labore et dolore magna aliqua。 Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip。

标签#sit#、#adipisicing#、#eiusmod#的对应数据将是数组,如:

array(
  '42' => 'sit somewhere',
  '43' => 'adipisicing...',
  '63' => 'eiusmod...'
)

我想使用 preg_replace 或 preg_replace_callback 来依次替换由数组值标记的 hashtagged。得到结果:

Lorem ipsum dolor <a href="/link/to/42" title="sit somewhere">#sit#</a> amet, consectetur <a href="link/to/43" title="adipisicing...">#adipisicing#</a> elit, sed do <a href="/link/to/63" title="eiusmod...">#eiusmod#</a> tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.

如何实现?

【问题讨论】:

    标签: php regex preg-replace preg-replace-callback


    【解决方案1】:
    $search = array(
        '#sit#',
        '#adipisicing#',
        '#eiusmod#'
        );
    $replacement = array(
        '42' => 'sit somewhere',
        '43' => 'adipisicing...',
        '63' => 'eiusmod...'
        );
    $str = str_replace($search, $replacement, $str);
    

    【讨论】:

      【解决方案2】:

      使用 str_replace 可能会更好。

      http://www.php.net/manual/en/function.str-replace.php

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-03
        • 1970-01-01
        • 1970-01-01
        • 2012-05-27
        • 2011-09-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多