我正在尝试在PHP中创建函数,用于在字符串中查找@Sometihng等用户,然后将链接到其字符串中的链接,但是当我使用它时,它返回致命错误:无法重新声明userTags() 即可。你知道问题在哪里或我做错了什么吗?这是我的代码。谢谢你的帮助。
$comment = "Hey @Name how are you?? And how is @AnotherName. Also have you seen @SomeName ??";
function userTags($startFrom) {
$pos = strpos($comment, '@', $startFrom);
if ($pos !== false) {
$pos1 = strpos($comment, ' ', $pos);
if ($pos1 !== false) {
$insert_string = '<a href="profile.php?owner=somewhere">';
$insert_string1 = "</a>";
$comment = substr_replace($comment, $insert_string1, $pos1, 0);
$comment = substr_replace($comment, $insert_string, $pos, 0);
userTags($pos1);
}
}
}
答案 0 :(得分:0)
函数位于while循环中,因此它被多次声明。
答案 1 :(得分:0)
请尝试使用正则表达式。 :) '/(?<!\w)@\S+/'
将提取以@character开头的所有单词。
$comment = "Hey @Name how are you?? And how is @AnotherName. Also have you seen @SomeName ??";
preg_match_all('/(?<!\w)@\S+/', $comment, $matches);
print_r($matches[0]);