public function test_str_lastSegment() { $string = Str::lastSegment('path/to/route', '/'); $this->assertEquals('route', $string); $string = Str::lastSegment('pathtoroute', '/'); $this->assertEquals('pathtoroute', $string); $string = Str::lastSegment('path/to/route/', '/'); $this->assertEquals('', $string); $string = Str::lastSegment('', '/'); $this->assertEquals('', $string); }
*/ Str::macro('lastSegment', function ($string, $delimiter) { return Str::segment($string, $delimiter, -1); }); } if (!Str::hasMacro('pop')) { /** * Pop off the last segment of a string based on a delimiter. * Returns the remaining string. * * @param string $string * @param string $delimiter * @return string */ Str::macro('pop', function ($string, $delimiter) { return Str::replaceLast($delimiter . Str::lastSegment($string, $delimiter), '', $string); }); } if (!Str::hasMacro('tease')) { /** * Shortens a string in a pretty way. Removes all double spaces and HTML. * The string is concatenated with the moreTextIndicator. * * @param string $string * @param int $length * @param string $moreTextIndicator * @return string */ Str::macro('tease', function ($string, $length = 200, $moreTextIndicator = '...') { $string = preg_replace("/\\s+/", ' ', strip_tags(trim($string))); if (strlen($string) <= $length) {
/** * Get the last segment of a string based on a delimiter. * * @param string $string * @param string $delimiter * @return string */ function str_lastSegment($string, $delimiter) { return Str::lastSegment($string, $delimiter); }