0
我有一个Joomla插件(在这个上下文中不重要),它被设计为用一系列的数字(在一段文本内)加载一个数字的输入并用一系列的s代替它们。使用preg_replace替换值
我的问题是,我需要对我的$ article->文本做一个preg_replace,但我不知道如何将更改应用到匹配的条件。我见过preg_replace_callback,但我不知道如何在函数内调用它。
function onPrepareContent(&$article, &$params, $limitstart)
{
global $mainframe;
// define the regular expression
$pattern = "#{lotterynumbers}(.*?){/lotterynumbers}#s";
if(isset($article->text)){
preg_match($pattern, $article->text, $matches);
$numbers = explode("," , $matches[1]);
foreach ($numbers as $number) {
echo "<div class='number'><span>" . $number . "</span></div>";
}
}else{
$article->text = 'No numbers';
}
return true;
}
经修订的守则:
function onPrepareContent(&$article, &$params, $limitstart)
{
global $mainframe;
// define the regular expression
$pattern = "#{lotterynumbers}(.*?){/lotterynumbers}#s";
if(isset($article->text)){
preg_match($pattern, $article->text, $matches);
$numbers = explode("," , $matches[1]);
foreach ($numbers as $number) {
$numberlist[] = "<div class='number'><span>" . $number . "</span></div>";
}
$numberlist = implode("", $numberlist);
$article->text = preg_replace($pattern, $numberlist, $article->text);
}else{
$article->text = 'No numbers';
}
return true;
}
我已经使用该功能之前,所以我可以帮你,但你必须给我解释一下更好的问题 – mck89 2010-05-13 15:36:12
道歉的人,当我重新读它,我想知道它是否有道理。 我已经重写它到所需的效果,但它似乎很繁琐。理想的结果是: 1)查找文本 2)提取的数字(CSV术语{} lotterynumbers)和环绕每一个 3一个div)泵回至$物品─>文本 我已将修改后的代码放入问题 – Jeepstone 2010-05-13 15:41:47
为什么修改的函数不起作用?看起来没问题。 – mck89 2010-05-13 15:45:47