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. 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 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 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. 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); Link to comment https://forums.phpfreaks.com/topic/99640-help-w-bbcode/#findComment-511651 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.