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

Reply via email to