0

我需要替换这些标签之间的内容并保留标签

$source="Original string <p>bal bla bla</p>**** <!--{date}-->REPLACE ME!!!<!--/{date}-->"
$replaceText = '2012-06-14';
$start = '<!--{date}-->';
$end = '<!--/{date}-->';

preg_replace('#('.preg_quote($start).')(.*)('.preg_quote($end).')#si', '$1'.$replaceText.'$3', $source);

结果是:

"Original string <p>bal bla bla</p>**** 012-06-14<!--/{date}-->"

缺少开始标签和 2. 想法?

4

2 回答 2

3

那是因为这样做你会获得 : '$12012-06-14$3'作为替代品。所以我猜它正在服用$12而不是$1

您可能想测试文档中写的内容,${1}而不是$1

于 2012-06-14T14:39:15.257 回答
1

在 var 和 replaceText 之间放置一个空格

像那样

preg_replace('#('.preg_quote($start).')(.*)('.preg_quote($end).')#si', '$1 '.$replaceText.' $3', $source);
于 2012-06-14T14:42:19.570 回答