On Wed, 2004-09-22 at 12:31, Brian Dunning wrote:
> > <?
> >   $string = 'one<br>two<br>three<br>four<br>five';
> >   $nthPos = 4;
> >   $tmpArr = explode( '<br>', $string );
> >   $nthString = $tmpArr[($nthPos - 1)];
> > ?>
> 
> Thanks Chris, that works great, but it's not doing what I want. I'm 
> just trying to get the position of the 3rd occurrence (for example) of 
> '<br>'. So I'm looking for a function that will return the value 19, 
> given the above example string.

The following should get you going:

function strpos_nth( $hay, $needle, $n=1 )
{
    $offset = -1;

    if( $n < 1 )
    {
        return false;
    }

    while( $n-- > 0 )
    {
        if( ($offset = strpos( $hay, $needle, $offset + 1 )) === false )
        {
            return false;
        }
    }

    return $offset;
}

Cheers,
Rob.
-- 
.------------------------------------------------------------.
| InterJinn Application Framework - http://www.interjinn.com |
:------------------------------------------------------------:
| An application and templating framework for PHP. Boasting  |
| a powerful, scalable system for accessing system services  |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for       |
| creating re-usable components quickly and easily.          |
`------------------------------------------------------------'

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

Reply via email to