On Wed, 2009-03-11 at 15:34 -0400, Robert Cummings wrote:
> On Wed, 2009-03-11 at 15:07 -0400, Peter van der Does wrote:
> > php > $a='data[options][name]';
> > php > echo ltrim($a,'data[');
> > options][name]
> >
> > Just as I expected.
> >
> > Next one:
> > php > $a='options[options][name]';
> > php > echo ltrim($a,'options[');
> > ][name]
> >
> > UH, what?
> > Not exactly what I expected.
> >
> > This works:
> > php > $a='options[options][name]';
> > php > echo ltrim(ltrim($a,'options'),'[');
> > options][name]
>
> It doesn't trim strings, it trims characters. The second argument is a
> list of characters. I'm surprised this has worked for you up till now. I
> think most people would use the following to do what you want:
>
> <?php
>
> echo preg_replace( '#^options\[#', '', $a )
>
> ?>
>
> Or they would do test and strip:
>
> <?php
>
> if( substr( $a, 0, 8 ) === 'options[' )
> {
> echo substr( $a, 8 );
> }
>
> ?>
>
> Or maybe:
>
> <?php
>
> if( preg_match( '#^options\[#', $a ) )
> {
> echo substr( $a, 8 );
> }
>
> ?>
Just because I'm a nice guy... :) here's the generic strip:
<?php
echo preg_replace( '#^[[:alpha:]]+[[:alnum:]]*\[#', '', $a );
?>
Cheers,
Rob.
--
http://www.interjinn.com
Application and Templating Framework for PHP
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php