| @@ 55-72 (lines=18) @@ | ||
| 52 | * |
|
| 53 | * @return string |
|
| 54 | */ |
|
| 55 | public static function cutStart( |
|
| 56 | string $str, |
|
| 57 | string $subString = ' ', |
|
| 58 | bool $repeat = false, |
|
| 59 | bool $caseSensitive = true |
|
| 60 | ) : string { |
|
| 61 | $prepared = RegEx::prepare($subString, '/'); |
|
| 62 | $regex = sprintf( |
|
| 63 | '/^%s/%s', |
|
| 64 | ($subString |
|
| 65 | ? ($repeat ? RegexHelper::quantifyGroup($prepared, 0) : $prepared) |
|
| 66 | : '' |
|
| 67 | ), |
|
| 68 | (!$caseSensitive ? 'i' : '') |
|
| 69 | ); |
|
| 70 | ||
| 71 | return preg_replace($regex, '', $str); |
|
| 72 | } |
|
| 73 | ||
| 74 | /** |
|
| 75 | * Cut substring from the end of string |
|
| @@ 84-101 (lines=18) @@ | ||
| 81 | * |
|
| 82 | * @return string |
|
| 83 | */ |
|
| 84 | public static function cutEnd( |
|
| 85 | string $str, |
|
| 86 | string $subString = ' ', |
|
| 87 | bool $repeat = false, |
|
| 88 | bool $caseSensitive = true |
|
| 89 | ) : string { |
|
| 90 | $prepared = RegEx::prepare($subString, '/'); |
|
| 91 | $regex = sprintf( |
|
| 92 | '/%s$/%s', |
|
| 93 | ($subString |
|
| 94 | ? ($repeat ? RegexHelper::quantifyGroup($prepared, 0) : $prepared) |
|
| 95 | : '' |
|
| 96 | ), |
|
| 97 | (!$caseSensitive ? 'i' : '') |
|
| 98 | ); |
|
| 99 | ||
| 100 | return preg_replace($regex, '', $str); |
|
| 101 | } |
|
| 102 | } |
|
| 103 | ||