我一直在尝试使用链接替换特定符号后的文本。
例如:
如果我有“bla bla bla @Name bla bla bla”,我希望能够单独输出'Name'(符号'@'),这样我就可以在"vici"
标签上附加链接配置文件。到目前为止,我尝试了几种方法,但没有运气。
我的最新尝试:
<a></a>
答案 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)
可能regexp
和preg_replace()
可以解决您的问题。即preg_replace('/\b@(\S+)\b/', '<a href="something.php?nick=$1">$1</a>', $text)
。
Regexp是强大的工具,PHP手册有很好的篇章。