Załóżmy, że masz akapit tekstu z różnego rodzaju dziwnym formatowaniem. Może to od kogoś, kto kopiuje i wkleja tekst do Twojego CMS, lub jest po prostu w dziwnym stanie. Coś takiego:
$paragraph = "hello this is a test \n \t just a test and stuff ";
Jak widać, ma dodatkowe spacje, znak nowego wiersza, znak tabulacji i po prostu dziwnie sformatowany.
Laravel zapewnia świetne rozwiązanie tego problemu, squish
zwane metodą pomocników String.
str($paragraph)->squish();
Po przeprowadzeniu go przez squish
to wszystko zostaną usunięte:Pod maską oto, co faktycznie robi ta metoda:Oto wyjaśnienie:
"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));
}
- Pierwszy
preg_replace
usuwa wiodące i końcowe spacje lub znaki zestawienia komponentów. - Drugi
preg_replace
zastępuje jeden lub więcej kolejnych białych znaków lub specjalnych wypełniaczy pojedynczą spacją.
Gwarantuje to, że otrzymasz ciąg bez dodatkowych spacji.
Wolę obejrzeć film, oto krótka rolka, którą zrobiłem na stronie @laravelnews na Instagramie , obejmująca to: