sniped22 Posted May 30, 2007 Share Posted May 30, 2007 $usernam = substr($pokerhand, 9, $pos2-9); $username ="<font color='blue'>$usernam:</font>"; //$text_out definately contains $usernam. preg_replace($usernam, $username, $text_out); how do I use variables as patterns and replacements? Thanks Quote Link to comment Share on other sites More sharing options...
Wildbug Posted May 31, 2007 Share Posted May 31, 2007 You need to use delimiters, and I would also suggest using preg_quote with your delimiter of choice to make sure everything in the pattern is recognized as a literal. Every pattern must be contained within delimiters. (/this is a pattern/) Quote Link to comment Share on other sites More sharing options...
sniped22 Posted May 31, 2007 Author Share Posted May 31, 2007 $text_out = preg_replace('/$usernam/', $username, $text_out); // doesnt work $text_out = preg_replace('/\$usernam/', $username, $text_out); // doesnt work $text_out = preg_replace('/$usernam/', '/$username/', $text_out); // doesnt work $text_out = preg_replace($usernam, $username, $text_out); // doesnt work //can't figure it out!!!! i know that you know the answer and were trying to lead me in the correct direction, but i think if you show me how you would do it, i would know how to use it from here on. Thanks again Quote Link to comment Share on other sites More sharing options...
sniped22 Posted May 31, 2007 Author Share Posted May 31, 2007 preg_replace("/$usernam/", $username, $text_out); WORKS!!! Quote Link to comment Share on other sites More sharing options...
Wildbug Posted June 1, 2007 Share Posted June 1, 2007 Right, you needed the double quotes to interpolate the variable. Also, unless there will never be metacharacters in $usernam (chars. like /[*., etc; anything with special meaning in a regex), you should use preg_quote to make sure they are escaped. preg_replace('/' . preg_quote($usernam,'/') . '/', $username, $text_out); Quote Link to comment 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.