ifm1989 Posted April 5, 2008 Share Posted April 5, 2008 Another question. I am trying to make a bbcode that shows a user + a link to his account. So, [user=1] would create a link to user 1's account This is what I've added to the bbcode function: $text = preg_replace('#\[user=(.*?)\]#si', '<a href="'.BASEDIR.'user?id=\1">'.getusername('\1').'</a>', $text); And this is my getusername() function: function getusername($user_id) { $user_id = stripinput((int)$user_id); if($user_id == 0){ return 'INVALID USER ID'; }else{ $gsql = dbquery("SELECT user_name FROM ".DB_PREFIX."users WHERE user_id = '$user_id' LIMIT 1"); if(dbrows($gsql)){ $gdata = dbarray($gsql); return $gdata['user_name']; }else{ return 'ACCOUNT NOT FOUND'; } } return false; } I've highlighted in blue what i think is causing the problem. Right now, it is correctly making a link to the user account, but it's giving INVALID USER ID for the user name. Quote Link to comment https://forums.phpfreaks.com/topic/99640-help-w-bbcode/ Share on other sites More sharing options...
laffin Posted April 5, 2008 Share Posted April 5, 2008 illegal, as the replacement string in preg_replace is to be static (same thing, nothing dynamic) u will want to go with preg_replace_callback, so u can stick in the extra function getusername into the replacement string Quote Link to comment https://forums.phpfreaks.com/topic/99640-help-w-bbcode/#findComment-509730 Share on other sites More sharing options...
ifm1989 Posted April 5, 2008 Author Share Posted April 5, 2008 This: $text = preg_replace_callback('#\[user=(.*?)\]#si', '<a href="'.BASEDIR.'user?id=\1">'.getUserName('\1').'</a>', $text); Returns this error: Warning: preg_replace_callback() requires argument 2, 'INVALID USER ID', to be a valid callback in /home/galava/public_html/core.php on line 474 Quote Link to comment https://forums.phpfreaks.com/topic/99640-help-w-bbcode/#findComment-509732 Share on other sites More sharing options...
ifm1989 Posted April 6, 2008 Author Share Posted April 6, 2008 Bump for justice. Quote Link to comment https://forums.phpfreaks.com/topic/99640-help-w-bbcode/#findComment-510744 Share on other sites More sharing options...
laffin Posted April 8, 2008 Share Posted April 8, 2008 function prc($mathes) { return '<a href="'.BASEDIR."user?id=$matches[1]">'. getUserName($matches[1]) . '</A>'; } $text = preg_replace_callback('#\[user=(.*?)\]#si', 'prc', $text); Quote Link to comment https://forums.phpfreaks.com/topic/99640-help-w-bbcode/#findComment-511651 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.