Припустимо, у вас є абзац тексту з усіляким дивним форматуванням. Можливо, це від того, що хтось копіює та вставляє текст у вашу CMS, або це просто в дивному стані. Приблизно так:
$paragraph = "hello this is a test \n \t just a test and stuff ";
Як бачите, він має додаткові пробіли, символ нового рядка, символ табуляції і просто дивно відформатований.
Laravel пропонує чудове рішення для цього під назвою squish
метод на допоміжних рядках.
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
видаляє початкові та кінцеві пробіли або символи BOM. - Другий
preg_replace
замінює один або кілька послідовних білих пробілів або спеціальних наповнювачів одним пробілом.
Це гарантує, що ви отримаєте рядок без зайвих пробілів.
Віддайте перевагу перегляду відео, ось короткий ролик, який я зробив для сторінки @laravelnews в Instagram , який висвітлює це: