Допустим, у вас есть абзац текста со всевозможным странным форматированием. Может быть, это из-за того, что кто-то копирует и вставляет текст в вашу CMS, или он просто находится в странном состоянии. Что-то вроде этого:
$paragraph = "hello this is a test \n \t just a test and stuff ";
Как видите, в нем есть лишние пробелы, символ новой строки, символ табуляции и просто странный формат.
Laravel предоставляет отличное решение этой проблемы, squish
называемое методом вспомогательных функций String.
str($paragraph)->squish();
После того, как вы пройдете через squish
него, вы удалите все лишнее:Под капотом, вот что на самом деле делает этот метод:
"hello this is a test just a test and stuff"
Вот объяснение:
/**
* Remove all "extra" blank space from the given string.
*
* @param string $value
* @return string
*/
public static function squish($value)
{
return preg_replace('~(\s|\x{3164}|\x{1160})+~u', ' ', preg_replace('~^[\s\x{FEFF}]+|[\s\x{FEFF}]+$~u', '', $value));
}
- Первый
preg_replace
удаляет начальные и конечные пробелы или символы спецификации. - Во втором
preg_replace
случае один или несколько последовательных пробелов или специальных заполнителей заменяются одним пробелом.
Это гарантирует, что вы получите строку без лишних пробелов.
Если вы предпочитаете посмотреть видео, вот короткий ролик, который я сделал для @laravelnews страницы в Instagram , посвященный этому: