public function commonPrefix($text1, $text2)
    {
        // Quick check for common null cases.
        if ($text1 == '' || $text2 == '' || mb_substr($text1, 0, 1) != mb_substr($text2, 0, 1)) {
            return 0;
        }
        // Binary search.
        // Performance analysis: http://neil.fraser.name/news/2007/10/09/
        $pointermin = 0;
        $pointermax = min(mb_strlen($text1), mb_strlen($text2));
        $pointermid = $pointermax;
        $pointerstart = 0;
        while ($pointermin < $pointermid) {
            if (mb_substr($text1, $pointerstart, $pointermid - $pointerstart) == mb_substr($text2, $pointerstart,
                    $pointermid - $pointerstart)
            ) {
                $pointermin = $pointermid;
                $pointerstart = $pointermin;
            } else {
                $pointermax = $pointermid;
            }
            $pointermid = (int)(($pointermax - $pointermin) / 2) + $pointermin;
        }

        return $pointermid;
    }
public function commonPrefix($text1, $text2)
    {
        // Quick check for common null cases.
        if ($text1 == '' || $text2 == '' || mb_substr($text1, 0, 1) != mb_substr($text2, 0, 1)) {
            return 0;
        }
        // Binary search.
        // Performance analysis: http://neil.fraser.name/news/2007/10/09/
        $pointermin = 0;
        $pointermax = min(mb_strlen($text1), mb_strlen($text2));
        $pointermid = $pointermax;
        $pointerstart = 0;
        while ($pointermin < $pointermid) {
            if (mb_substr($text1, $pointerstart, $pointermid - $pointerstart) == mb_substr($text2, $pointerstart,
                    $pointermid - $pointerstart)
            ) {
                $pointermin = $pointermid;
                $pointerstart = $pointermin;
            } else {
                $pointermax = $pointermid;
            }
            $pointermid = (int)(($pointermax - $pointermin) / 2) + $pointermin;
        }

        return $pointermid;
    }
public function commonPrefix ( $ text1 , $ text2 ) { // Quick check for common null cases. if ( $ text1 == '' || $ text2 == '' || mb_substr ( $ text1 , 0 , 1 ) != mb_substr ( $ text2 , 0 , 1 ) ) { return 0 ; } // Binary search. // Performance analysis: http://neil.fraser.name/news/2007/10/09/ $ pointermin = 0 ; $ pointermax = min ( mb_strlen ( $ text1 ) , mb_strlen ( $ text2 ) ) ; $ pointermid = $ pointermax ; $ pointerstart = 0 ; while ( $ pointermin < $ pointermid ) { if ( mb_substr ( $ text1 , $ pointerstart , $ pointermid - $ pointerstart ) == mb_substr ( $ text2 , $ pointerstart , $ pointermid - $ pointerstart ) ) { $ pointermin = $ pointermid ; $ pointerstart = $ pointermin ; } else { $ pointermax = $ pointermid ; } $ pointermid = ( int ) ( ( $ pointermax - $ pointermin ) / 2 ) + $ pointermin ; } return $ pointermid ; }
Determine the common prefix of two strings.

@param string $text1 First string.
@param string $text2 Second string.

@return int The number of characters common to the start of each string.
Determine the common prefix of two strings .