用PHP中的链接替换文本

时间:2018-05-14 18:55:07

标签: php

我一直在尝试使用链接替换特定符号后的文本。 例如:

如果我有“bla bla bla @Name bla bla bla”,我希望能够单独输出'Name'(符号'@'),这样我就可以在"vici"标签上附加链接配置文件。到目前为止,我尝试了几种方法,但没有运气。

我的最新尝试:

<a></a>

2 个答案:

答案 0 :(得分:1)

您可以使用preg_replace_callback()use($db)在回调中调用getIdByUser()

$content = "bla bla bla @Name bla bla bla" ;
$rep_string = preg_replace_callback('~@(\w+)~', function($matches) use ($db) {
    $text = $matches[1]; // here, $text is "Name"
    $ref_id = getIdByUser($text, $db);
    return "<a href='profile.php?id=$ref_id'>$text</a>";
}, $content);
echo $rep_string;

输出类似:

bla bla bla <a href='profile.php?id=2'>Name</a> bla bla bla

答案 1 :(得分:0)

可能regexppreg_replace()可以解决您的问题。即preg_replace('/\b@(\S+)\b/', '<a href="something.php?nick=$1">$1</a>', $text)

Regexp是强大的工具,PHP手册有很好的篇章。