Search code examples
laravelstringstr-replace

Laravel how to replace a words in string


I am trying to change words in string, I know laravel Str::replace() function but it converts if you write exact word. This is what i want to do :

$string = " this is @username and this is @username2"

I want to find usernames which starts with "@" and make them like below, i want to add <strong> html tag them :

$newstring = " this is <strong>@username</strong> and this is <strong>@username2</strong>"

I couldnt find the way to change dynamic value on str replace.

Thanks


Solution

  • Use preg_replace

    $string = 'this is @username and this is @username2';
    
    $newString = preg_replace('/(\@\w+)/', '<strong>$1</strong>', $string);
    

    Docs: https://www.php.net/manual/en/function.preg-replace.php