Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 02-13-2002, 05:02 AM
TranceCan TranceCan is offline
 
Join Date: Feb 2002
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello,

We are using the chat hack to integrate IRC chat in our forums. The problem is with usernames that are valid in VB, but not in IRC. What I would like to do is add a piece of code to check usernames and remove invalid characters as they are sent into chat.

ie. [A.O.E.]sNiPeR (that's an example of a REAL username in our forums).

The regex I need (I could never grasp how to write regular expressions) would remove any brackets and convert periods and space to underscores. So, in this example, it would become:

A_O_E_sNiPeR

Or in the case of a space, like: The Dude, would become The_Dude.

Can someone PLEASE give me a code snippet that will do that?

THANKS!!!!!
Reply With Quote
  #2  
Old 02-13-2002, 05:22 AM
Mark Hensler's Avatar
Mark Hensler Mark Hensler is offline
 
Join Date: Oct 2001
Location: California
Posts: 205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You could use str_replace(). I don't think you'll need the power of regular expressions, so str_replace will give you more speed.

example:
PHP Code:

$replace 
= array(
    
// array(OUT, IN),
    
array('['''),
    array(
']'''),
    array(
'.''_'),
    array(
' ''_')
    );

$string str_replace($replace[0], $replace[1], $string); 
Reply With Quote
  #3  
Old 02-13-2002, 05:41 AM
TranceCan TranceCan is offline
 
Join Date: Feb 2002
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally posted by Mark Hensler
You could use str_replace(). I don't think you'll need the power of regular expressions, so str_replace will give you more speed.

example:
PHP Code:

$replace 
= array(
    
// array(OUT, IN),
    
array('['''),
    array(
']'''),
    array(
'.''_'),
    array(
' ''_')
    );

$string str_replace($replace[0], $replace[1], $string); 
Very close! Didn't work for me though, so I dug in the PHP manual and ended up with this:

$search = array('[', ']', '.', ' ');
$replace = array('', '', '_', '_');

$string = str_replace($search, $replace, $string);

Works like a charm now!! Thanks for your help, got me on the right trail!!
Reply With Quote
  #4  
Old 02-13-2002, 06:32 PM
Mark Hensler's Avatar
Mark Hensler Mark Hensler is offline
 
Join Date: Oct 2001
Location: California
Posts: 205
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

sorry...
This is what I wanted to post, but aparently my mind wasn't with me at the time.
PHP Code:
$replace = array(
    
// "OUT" => "IN"
    
'[' => '',
    
']' => '',
    
'.' => '_',
    
' ' => '_'
    
);

$text str_replace(array_keys($replace), array_values($replace), $text); 
I this because you can see the pairs easier.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:53 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03850 seconds
  • Memory Usage 2,197KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete