Re: Re: regular expression help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, 

>From what i can see you dont even need to call global, as your passing
variables to the function ? this could be causing the script to
confuse itself.

hth


On Fri, 21 Jan 2005 09:30:21 -0700, Jason <jason.gerfen@xxxxxxxxxxxx> wrote:
> Jason wrote:
> > Simple functions to check & fix if necessary invalid formating of a MAC
> > address... I seem to be having problems with the global variable $mac
> > not being returned from the fix_mac() function.  Any help is appreciated.
> >
> > <?php
> > /*
> >  * ex. 00:AA:11:BB:22:CC
> >  */
> > function chk_mac( $mac ) {
>      global $mac;
> >  if( eregi(
> > "^[0-9A-Fa-f]{2}\:[0-9A-Fa-f]{2}\:[0-9A-Fa-f]{2}\:[0-9A-Fa-f]{2}\:[0-9A-Fa-f]{2}\:[0-9A-Fa-f]{2}$",
> > $mac ) ) {
> >   return 0;
> >  } else {
> >   return 1;
> >  }
> > }
> >
> > /*
> >  * check validity of MAC & do replacements if necessary
> >  */
> > function fix_mac( $mac ) {
> >  global $mac;
> >  /* strip the dash & replace with a colon */
> >  if( eregi(
> > "^[0-9A-Fa-f]{2}\-[0-9A-Fa-f]{2}\-[0-9A-Fa-f]{2}\-[0-9A-Fa-f]{2}\-[0-9A-Fa-f]{2}\-[0-9A-Fa-f]{2}$",
> > $mac ) ) {
> >   $mac = preg_replace( "/\-/", ":", $mac );
> >   return $mac;
> >  }
> >  /* add a colon for every two characters */
> >  if( eregi( "^[0-9A-Fa-f]{12}$", $mac ) ) {
> >   /* split up the MAC and assign new var names */
> >   @list( $mac1, $mac2, $mac3, $mac4, $mac5, $mac6 ) = @str_split( $mac,
> > 2 );
> >   /* put it back together with the required colons */
> >   $mac = $mac1 . ":" . $mac2 . ":" . $mac3 . ":" . $mac4 . ":" . $mac5 .
> > ":" . $mac6;
> >   return $mac;
> >  }
> > }
> >
> > // do our checks to make sure we are using these damn things right
> > $mac1 = "00aa11bb22cc";
> > $mac2 = "00-aa-11-bb-22-cc";
> > $mac3 = "00:aa:11:bb:22:cc";
> >
> > // make sure it is global
> > global $mac;
> >
> > // if mac submitted is invalid check & fix if necessary
> > if( chk_mac( $mac1 ) != 0 ) {
> >  $mac = fix_mac( $mac1 ); echo $mac1 . " converted to " . $mac . "<br>";
> > }
> > if( chk_mac( $mac2 ) != 0 ) {
> >  $mac = fix_mac( $mac2 ); echo $mac2 . " converted to " . $mac . "<br>";
> > }
> > if( chk_mac( $mac3 ) != 0 ) {
> >  $mac = fix_mac( $mac3 ); echo $mac3 . " converted to " . $mac . "<br>";
> > }
> >
> > ?>
> Still does not resolve the problem.  declaring $mac as global in the
> chk_mac() function.
> 
> --
> Jason Gerfen
> Student Computing
> Marriott Library
> 801.585.9810
> jason.gerfen@xxxxxxxxxxxx
> 
> "And remember... If the ladies
>   don't find you handsome, they
>   should at least find you handy..."
>               ~The Red Green show
> 
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux