目标文本类似于:
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来按顺序替换数组值标记的hashheet。得到结果:
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.
怎么可能实现呢?
答案 0 :(得分:0)
使用str_replace可能会更好。
答案 1 :(得分:0)
$search = array(
'#sit#',
'#adipisicing#',
'#eiusmod#'
);
$replacement = array(
'42' => 'sit somewhere',
'43' => 'adipisicing...',
'63' => 'eiusmod...'
);
$str = str_replace($search, $replacement, $str);