preg_replace,将$ 1变为变量

时间:2013-12-18 16:33:03

标签: php

我有这个变量,用@将每个单词都变成一个链接。但现在我需要将该值作为变量来创建一个函数。 很难解释所以我会用代码展示它。

$text = preg_replace( "/@([^\s]+)/", "<a href=\"profile.php?id=$1\" class=\"at\">@$1</a>", $text);

这是变量,我想要的是$1变成一个变量。我试图解决这个问题,但我不能因为我不知道该怎么做。我怎么能这样做?

提前致谢!

2 个答案:

答案 0 :(得分:2)

function makeALink($value) {
    // Do something here with $value, for example make a link
    return "<a href=\"profile.php?id=$value\" class=\"at\">@$value</a>";
}

$text = preg_replace_callback("/@([^\s]+)/", "makeALink", $text);

答案 1 :(得分:0)

只需使用preg_match_all()代替preg_replace。

$matches = array();
preg_replace_all("/@([^\s]+)/", $text, $matches);

// $matches[0] contains the with @. $matches[1] contains your hits without the @
echo $matches[1][0]; // your first hit without the @
echo $matches[1][1]; // your second hit without the @
echo $matches[1][2]; // your third hit without the @