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, 14 Aug 2009

view this page in

mb_split

(PHP 4 >= 4.2.0, PHP 5)

mb_splitScinde une chaîne en tableau avec une expression rationnelle multi-octets

Description

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

Scinde la chaîne multi-octets string en utilisant l'expression rationnelle pattern puis en retournant le résultat sous forme de tableau.

Liste de paramètres

pattern

Le masque de l'expression rationnelle.

string

La chaîne à scinder.

limit
Si le paramètre optionnel limit est spécifié, la chaîne sera scindée en limit éléments au plus.

Valeurs de retour

Le résultat, sous la forme d'un tableau.

Notes

Note: L'encodage interne ou l'encodage des caractères spécifié par la fonction mb_regex_encoding() sera utilisé comme encodage de caractères pour cette fonction.

Voir aussi

  • mb_regex_encoding() - Retourne le jeu de caractères courant pour les expressions rationnelles
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multi-octets



mb_strcut> <mb_send_mail
Last updated: Fri, 14 Aug 2009
 
add a note add a note User Contributed Notes
mb_split
gert dot matern at web dot de
03-Aug-2009 12: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);
}
?>

Here is 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>';
?>

Let me know [by personal email], if someone found a regex to simulate a str_split with mb_split.
Sezer Yalcin
19-Feb-2009 02:13
To split by mb letters, use preg_split with /u modifier instead of calling mb functions thousand times.
adjwilli at yahoo dot com
26-Dec-2007 06: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.

<?php
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, 14 Aug 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites