# _split_str_by_whitespace()

URL: https://chugunov.pro/api-wordpress/functions/_split_str_by_whitespace/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 3.4.0.

## Сигнатура

```php
_split_str_by_whitespace( string $text, int $goal ): array
```

## Описание

Длина каждого возвращаемого фрагмента максимально близка к заданной целевой длине, с той оговоркой, что каждый фрагмент включает свой завершающий разделитель.
Гарантируется, что фрагменты, превышающие целевую длину, не содержат внутренних пробелов.
Соединение возвращаемых фрагментов пустыми разделителями восстанавливает исходную строку без потерь.
Входная строка не должна содержать нулевых символов (или же последующие преобразования выходных фрагментов не должны учитывать нулевые символы)
_split_str_by_whitespace( "1234 67890 1234 67890a cd 1234 890 123456789 1234567890a 45678 1 3 5 7 90 ", 10 ) ==
array (
0 => '1234 67890 ', // 11 символов: идеальное разбиение.
1 => '1234 ', // 5 символов: '1234 67890a' было слишком длинным.
2 => '67890a cd ', // 10 символов: '67890a cd 1234' было слишком длинным.
3 => '1234 890 ', // 11 символов: идеальное разбиение.
4 => '123456789 ', // 10 символов: '123456789 1234567890a' было слишком длинным.
5 => '1234567890a ', // 12 символов: слишком длинное, но нет внутренних пробелов для разбиения.
6 => ' 45678 ', // 11 символов: идеальное разбиение.
7 => '1 3 5 7 90 ', // 11 символов: конец $text.
);

## Параметры

- `$text` `string` — обязательный. Строка для разбиения.
- `$goal` `int` — обязательный. Желаемая длина фрагмента.

## Возвращаемое значение

`array`

## Исходный код

Файл: `wp-includes/formatting.php:3182`

```php
function _split_str_by_whitespace( $text, $goal ) {
	$chunks = array();

	$string_nullspace = strtr( $text, "\r\n\t\v\f ", "\000\000\000\000\000\000" );

	while ( $goal < strlen( $string_nullspace ) ) {
		$pos = strrpos( substr( $string_nullspace, 0, $goal + 1 ), "\000" );

		if ( false === $pos ) {
			$pos = strpos( $string_nullspace, "\000", $goal + 1 );
			if ( false === $pos ) {
				break;
			}
		}

		$chunks[]         = substr( $text, 0, $pos + 1 );
		$text             = substr( $text, $pos + 1 );
		$string_nullspace = substr( $string_nullspace, $pos + 1 );
	}

	if ( $text ) {
		$chunks[] = $text;
	}

	return $chunks;
}
```

## История изменений

- 3.4.0 — Introduced.

## Связанные

Используется в: [`make_clickable`](https://chugunov.pro/api-wordpress/functions/make_clickable/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/_split_str_by_whitespace/
