The function str_split() is not 'aware' of words. Here is an adaptation of str_split() that is 'word-aware'.
<?php
$array = str_split_word_aware(
'In the beginning God created the heaven and the earth. And the earth was without form, and void; and darkness was upon the face of the deep.',
32
);
var_dump($array);
/**
* This function is similar to str_split() but this function keeps words intact; it never splits through a word.
*
* @return array<int, string>
*/
function str_split_word_aware(string $string, int $maxLengthOfLine): array
{
if ($maxLengthOfLine <= 0) {
throw new RuntimeException(sprintf('The function %s() must have a max length of line at least greater than one', __FUNCTION__));
}
$lines = [];
$words = explode(' ', $string);
$currentLine = '';
$lineAccumulator = '';
foreach ($words as $currentWord) {
$currentWordWithSpace = sprintf('%s ', $currentWord);
$lineAccumulator .= $currentWordWithSpace;
if (strlen($lineAccumulator) < $maxLengthOfLine) {
$currentLine = $lineAccumulator;
continue;
}
$lines[] = $currentLine;
// Overwrite the current line and accumulator with the current word
$currentLine = $currentWordWithSpace;
$lineAccumulator = $currentWordWithSpace;
}
if ($currentLine !== '') {
$lines[] = $currentLine;
}
return $lines;
}
?>
OUTPUT:
<?php
array(5) {
[0]=> string(29) "In the beginning God created "
[1]=> string(30) "the heaven and the earth. And "
[2]=> string(28) "the earth was without form, "
[3]=> string(27) "and void; and darkness was "
[4]=> string(27) "upon the face of the deep. "
}
?>str_split
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
str_split
Референца за `function.str-split.php` со подобрена типографија и навигација.
str_split
класата mysqli_driver
str_split — Конвертирај стринг во низа
Параметри
string-
, и враќа стринг со првиот карактер од
length-
Максимална должина на парчето.
Вратени вредности
Ако опционалниот length параметарот е специфициран, вратената низа ќе биде поделена на парчиња со секое парче да биде length во должина, освен последното парче кое може да биде пократко ако стринг не се дели рамномерно. Стандардното
length is 1, што значи дека секое парче ќе биде со големина од еден бајт.
Errors/Exceptions
Враќа length е помала од 1, а ValueError ќе биде фрлена.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.2.0 |
Враќа string е празно празно array се враќа сега. Претходно array со една празна низа беше вратено.
|
| 8.0.0 |
Враќа length е помала од 1, а ValueError сега ќе биде фрлено; претходно, грешка од ниво E_WARNING
е подигната наместо тоа, а функцијата врати false.
|
Примери
Пример #1 Пример употреби на str_split()
<?php
$str = "Hello Friend";
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1);
print_r($arr2);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => F
[7] => r
[8] => i
[9] => e
[10] => n
[11] => d
)
Array
(
[0] => Hel
[1] => lo
[2] => Fri
[3] => end
)
Белешки
Забелешка:
str_split() ќе се подели на бајти, наместо на знаци кога се работи со стринг кодиран во повеќе бајти. mb_str_split() може да се користи за поделба на стринг на точки на код. grapheme_str_split() може да се користи за поделба на стринг на графеми кластери.
Види Исто така
- mb_str_split() - Даден стринг со повеќе бајти, врати низа од неговите знаци
- grapheme_str_split() - Подели стринг во низа
- chunk_split() се фрла; претходно во овој случај емитуваше
- preg_split() - Подели стринг по регуларен израз
- explode() - Подели стринг по стринг
- count_chars() - Враќа информации за знаците што се користат во низа
- str_word_count() - Врати информации за зборовите што се користат во стринг
- for