【发布时间】:2015-02-03 10:58:29
【问题描述】:
如何在 PHP 中使用 preg_replace()(或任何其他函数)获取结果文本和替换文本?
// Have:
$txt = "Lorem ipsum dolor sit amet, REPLACE_ME consectetur adipiscing elit.";
// Desired result:
$txt == "Lorem ipsum dolor sit amet, WAS_REPLACED consectetur adipiscing elit."
$replaced_text == 'REPLACE_ME'
preg_replace() 似乎返回被替换的部分或结果文本。而${1} vars 在 preg_replace() 调用之后似乎是空的;
EDIT2:得到了一些外部帮助,这是最终版本:
$re = "/REPLACE_ME/i";
$str = "Lorem ipsum dolor sit amet, REPLACE_ME consectetur adipiscing elit.";
$subst = "WAS_REPLACED";
$replacements;
$result = preg_replace_callback(
$re,
function ($matches) use(&$replacements, $subst) {
$replacements = $matches[0];
return $subst;
},
$str, 1);
echo $result."\n";
echo $replacements;
【问题讨论】:
-
我不是 php 开发者,只是想为我的 phpBB 板做一个小模组。
-
为什么使用双等号?
标签: php regex preg-replace