更改字符串,在php中找到@username

时间:2016-11-18 07:17:37

标签: php html regex

如何在找到的完整字符串中替换@username。

实施例: 原始字符串:"Hello @mike and @max how are you";

预期结果字符串:"Hello <a href="#">@mike</a> and <a href="#">@max</a> how are you'

我尝试使用strpos并爆炸,但没有得到解决方案。

请帮助任何人!感谢。

3 个答案:

答案 0 :(得分:4)

试试这个正则表达式:

$Output = preg_replace("/(\@\w+)/", "<a href='#'>$1</a>", $Original_String);

http://www.phpliveregex.com/p/hVf

答案 1 :(得分:0)

也许是这样的:

$orig = "Hello @mike and @max how are you";
$arr = explode(" ", $orig);
$newArr = array();

foreach ($arr as $word) {
    $tmp = $word;
    if ($word[0] == '@') {
        $tmp = '<a href="#">'.$word.'</a>';
    }
    $newArr[] = $tmp;
}

$newStr = implode(" ", $newArr);

答案 2 :(得分:-1)

您也可以使用str_replace函数

您可以在此处详细了解http://php.net/manual/en/function.str-replace.php

$intro   = 'Hello';
$user    = 'Person';
$message = 'Hope your day is going well.';

$source = '@intro, @user!  @message';
$search = ['@intro','@user', '@message'];
$replace = [$intro, $user, $message];

$message = str_replace($search, $replace, $source);
var_dump($message);