normalize_whitespace()WP 2.7.0

Стандартизирует (унифицирует) символы переноса строк (EOL) в переданной строке: переводит все переносы в единый вид \n. А также, удаляет пробелы на концах и множественные пробелы.

Функция может быть полезна, например, когда нужно сравнить два контента, которые могут отличаться только пробелами или переносами строк (в том числе на концах строки).

1 раз — 0.000123 сек (быстро) | 50000 раз — 0.04 сек (скорость света)

Хуков нет.

Возвращает

Строку. Обработанную строку.

Использование

normalize_whitespace( $str );
$str(строка) (обязательный)
Строка для нормализации.

Примеры

0

#1 Нормализация строки с пробелами

$string = 'hello       world ';
// 18 символов с пробелом в конце

string = normalize_whitespace( $string ); //> 'hello world'
// 11 символов без пробела в конце
0

#2 Сравнение строк

Допустим мы сделали сохранение введенного в текстовое поле контента и хотим переодически сравнивать не отличается ли он от текущего контента в поле.

$autosave_is_different = false;
if( normalize_whitespace( $current_content ) !== normalize_whitespace( $saved_content ) ) {
	$autosave_is_different = true;
}

Список изменений

С версии 2.7.0 Введена.

Код normalize_whitespace() WP 6.6.2

function normalize_whitespace( $str ) {
	$str = trim( $str );
	$str = str_replace( "\r", "\n", $str );
	$str = preg_replace( array( '/\n+/', '/[ \t]+/' ), array( "\n", ' ' ), $str );
	return $str;
}