downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mb_strcut> <mb_send_mail
Last updated: Fri, 06 Nov 2009

view this page in

mb_split

(PHP 4 >= 4.2.0, PHP 5)

mb_splitSplit multibyte string using regular expression

Description

array mb_split ( string $pattern , string $string [, int $limit = -1 ] )

Split a multibyte string using regular expression pattern and returns the result as an array.

Parameters

pattern

The regular expression pattern.

string

The string being split.

limit
If optional parameter limit is specified, it will be split in limit elements as maximum.

Return Values

The result as an array.

Notes

Note: The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.

See Also



mb_strcut> <mb_send_mail
Last updated: Fri, 06 Nov 2009
 
add a note add a note User Contributed Notes
mb_split
gert dot matern at web dot de
03-Aug-2009 07:18
I forgot to set the encodings, here an example with adjwilli's function:

<?php
mb_internal_encoding
( 'UTF-8');
mb_regex_encoding( 'UTF-8'); 

function
mbStringToArray
( $string
)
{
 
$stop   = mb_strlen( $string);
 
$result = array();

  for(
$idx = 0; $idx < $stop; $idx++)
  {
    
$result[] = mb_substr( $string, $idx, 1);
  }

  return
$result;
}

echo
'<pre>', PHP_EOL,
print_r( mbStringToArray( 'Weiße Rosen sind nicht grün!', true)), PHP_EOL,
'</pre>';
?>
gert dot matern at web dot de
03-Aug-2009 06:34
We are talking about Multi Byte ( e.g. UTF-8) strings here, so preg_split will fail for the following string:

'Weiße Rosen sind nicht grün!'

And because I didn't find a regex to simulate a str_split I optimized the first solution from adjwilli a bit:

<?php
$string
= 'Weiße Rosen sind nicht grün!'
$stop   = mb_strlen( $string);
$result = array();

for(
$idx = 0; $idx < $stop; $idx++)
{
  
$result[] = mb_substr( $string, $idx, 1);
}
?>

Let me know, if someone found a regex to simulate a str_split with mb_split.
Sezer Yalcin
19-Feb-2009 09:13
To split by mb letters, use preg_split with /u modifier instead of calling mb functions thousand times.
adjwilli at yahoo dot com
27-Dec-2007 01:37
I figure most people will want a simple way to break-up a multibyte string into its individual characters. Here's a function I'm using to do that. Change UTF-8 to your chosen encoding method.

function mbStringToArray ($string) {
    $strlen = mb_strlen($string);
    while ($strlen) {
        $array[] = mb_substr($string,0,1,"UTF-8");
        $string = mb_substr($string,1,$strlen,"UTF-8");
        $strlen = mb_strlen($string);
    }
    return $array;
}

mb_strcut> <mb_send_mail
Last updated: Fri, 06 Nov 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites