PHP.mk документација

mb_split

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.mb-split.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.mb-split.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
mb_split

Референца за `function.mb-split.php` со подобрена типографија и навигација.

function.mb-split.php

mb_split

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_splitПодели низа со повеќе бајти користејќи регуларен израз

= NULL

mb_split(string $pattern, string $string, int $limit = -1): array|false

Подели повеќе бајти string користејќи регуларен израз pattern и го враќа резултатот како array.

Параметри

pattern

Шемата на регуларниот израз.

string

На string што се дели.

limit
Ако опционалниот параметар limit е специфициран, ќе биде поделен во limit елементи како максимум.

Вратени вредности

Резултатот како array, или false при неуспех.

Белешки

Забелешка:

Специфичното кодирање на знаци од mb_regex_encoding() ќе се користи како кодирање на знаци за оваа функција по дифолт.

Види Исто така

  • mb_regex_encoding() - Постави/земи ја кодировката на знаци за мултибајт регуларни изрази
  • mb_ereg() - Регуларен израз со поддршка за повеќе бајти
  • explode() - Подели стринг по стринг

Белешки од корисници 8 белешки

Стас Трефилов, Вертилија
пред 10 години
a (simpler) way to extract all characters from a UTF-8 string to array with a single call to a built-in function:

<?php
  $str = 'Ма-
руся';
  print_r(preg_split('//u', $str, null, PREG_SPLIT_NO_EMPTY));
?>

Output:

Array
(
    [0] => М
    [1] => а
    [2] => -
    [3] => 

    [4] => р
    [5] => у
    [6] => с
    [7] => я
)
boukeversteegh на gmail dot com
пред 14 години
The $pattern argument doesn't use /pattern/ delimiters, unlike other regex functions such as preg_match.

<?php
   # Works. No slashes around the /pattern/
   print_r( mb_split("\s", "hello world") );
   Array (
      [0] => hello
      [1] => world
   )

   # Doesn't work:
   print_r( mb_split("/\s/", "hello world") );
   Array (
      [0] => hello world
   )
?>
adjwilli на yahoo точка com
пред 18 години
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;
}
?>
gunkan на terra точка es
пред 13 години
To split an string like this: "日、に、本、ほん、語、ご" using the "、" delimiter i used:

     $v = mb_split('、',"日、に、本、ほん、語、ご");

but didn't work.

The solution was to set this before:

       mb_regex_encoding('UTF-8');
      mb_internal_encoding("UTF-8"); 
     $v = mb_split('、',"日、に、本、ほん、語、ご");

and now it's working:

Array
(
    [0] => 日
    [1] => に
    [2] => 本
    [3] => ほん
    [4] => 語
    [5] => ご
)
boukeversteegh на gmail dot com
пред 15 години
In addition to Sezer Yalcin's tip.

This function splits a multibyte string into an array of characters. Comparable to str_split().

<?php
function mb_str_split( $string ) {
    # Split at all position not after the start: ^
    # and not before the end: $
    return preg_split('/(?<!^)(?!$)/u', $string );
}

$string   = '火车票';
$charlist = mb_str_split( $string );

print_r( $charlist );
?>

# Prints:
Array
(
    [0] => 火
    [1] => 车
    [2] => 票
)
thflori на gmail
пред 8 години
I agree that some people might want a mb_explode('', $string);

this is my solution for it:

<?php

$string = 'Hallöle';

$array = array_map(function ($i) use ($string) { 
    return mb_substr($string, $i, 1); 
}, range(0, mb_strlen($string) -1));

expect($array)->toEqual(['H', 'a', 'l', 'l', 'ö', 'l', 'e']);

?>
gert точка matern на web точка de
пред 16 години
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.
qdb на kukmara точка ru
пред 15 години
an other way to str_split multibyte string:
<?php
$s='әӘөүҗңһ';

//$temp_s=iconv('UTF-8','UTF-16',$s);
$temp_s=mb_convert_encoding($s,'UTF-16','UTF-8');
$temp_a=str_split($temp_s,4);
$temp_a_len=count($temp_a);
for($i=0;$i<$temp_a_len;$i++){
    //$temp_a[$i]=iconv('UTF-16','UTF-8',$temp_a[$i]);
    $temp_a[$i]=mb_convert_encoding($temp_a[$i],'UTF-8','UTF-16');
}

echo('<pre>');
print_r($temp_a);
echo('</pre>');

//also possible to directly use UTF-16:
define('SLS',mb_convert_encoding('/','UTF-16'));
$temp_s=mb_convert_encoding($s,'UTF-16','UTF-8');
$temp_a=str_split($temp_s,4);
$temp_s=implode(SLS,$temp_a);
$temp_s=mb_convert_encoding($temp_s,'UTF-8','UTF-16');
echo($temp_s);
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.