ameyemad Posted February 12, 2011 Share Posted February 12, 2011 Hi I'm trying to match @USERNAME in a string and replace it with @<a href="message.php?member=USERNAME">USERNAME</a> I've tried a few different methods: preg_replace ('/@(.*?)/', '<a href="message.php?member=$1">$1</a>', $str) and also * and \@ but i just can't seem to get it to work. any help would be appreciated! Quote Link to comment https://forums.phpfreaks.com/topic/227425-preg_replace-matching-username/ Share on other sites More sharing options...
.josh Posted February 12, 2011 Share Posted February 12, 2011 Not psychic... 1) post an example string where @USERNAME is actually used 2) explain what characters can appear in USERNAME (only letters? letters and numbers? symbols? spaces? etc...) Quote Link to comment https://forums.phpfreaks.com/topic/227425-preg_replace-matching-username/#findComment-1173084 Share on other sites More sharing options...
ameyemad Posted February 12, 2011 Author Share Posted February 12, 2011 The USERNAME can be letters, numbers or underscore only. So some examples: boy_man123 fooBarX 6_foo So let's say the string is: $str = "Hello @6_foo, how are you? To convert to: Hello @<a href="message.php?member=6_foo">6_foo</a>, how are you? Quote Link to comment https://forums.phpfreaks.com/topic/227425-preg_replace-matching-username/#findComment-1173089 Share on other sites More sharing options...
.josh Posted February 12, 2011 Share Posted February 12, 2011 $str = preg_replace('~@([a-z0-9_]+)~i', '<a href="message.php?member=$1">$1</a>', $str); Quote Link to comment https://forums.phpfreaks.com/topic/227425-preg_replace-matching-username/#findComment-1173096 Share on other sites More sharing options...
ameyemad Posted February 12, 2011 Author Share Posted February 12, 2011 Fantastic, thank you so much! Quote Link to comment https://forums.phpfreaks.com/topic/227425-preg_replace-matching-username/#findComment-1173101 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.