@@ 2673-2696 (lines=24) @@ | ||
2670 | * |
|
2671 | * @return static |
|
2672 | */ |
|
2673 | public function afterFirst(string $separator): self |
|
2674 | { |
|
2675 | if ($separator === '') { |
|
2676 | return static::create(); |
|
2677 | } |
|
2678 | ||
2679 | if ($this->str === '') { |
|
2680 | return static::create(); |
|
2681 | } |
|
2682 | ||
2683 | if (($offset = $this->indexOf($separator)) === false) { |
|
2684 | return static::create(); |
|
2685 | } |
|
2686 | ||
2687 | return static::create( |
|
2688 | UTF8::substr( |
|
2689 | $this->str, |
|
2690 | $offset + UTF8::strlen($separator, $this->encoding), |
|
2691 | null, |
|
2692 | $this->encoding |
|
2693 | ), |
|
2694 | $this->encoding |
|
2695 | ); |
|
2696 | } |
|
2697 | ||
2698 | /** |
|
2699 | * Gets the substring after the first occurrence of a separator. |
|
@@ 2706-2729 (lines=24) @@ | ||
2703 | * |
|
2704 | * @return static |
|
2705 | */ |
|
2706 | public function afterFirstIgnoreCase(string $separator): self |
|
2707 | { |
|
2708 | if ($separator === '') { |
|
2709 | return static::create(); |
|
2710 | } |
|
2711 | ||
2712 | if ($this->str === '') { |
|
2713 | return static::create(); |
|
2714 | } |
|
2715 | ||
2716 | if (($offset = $this->indexOfIgnoreCase($separator)) === false) { |
|
2717 | return static::create(); |
|
2718 | } |
|
2719 | ||
2720 | return static::create( |
|
2721 | UTF8::substr( |
|
2722 | $this->str, |
|
2723 | $offset + UTF8::strlen($separator, $this->encoding), |
|
2724 | null, |
|
2725 | $this->encoding |
|
2726 | ), |
|
2727 | $this->encoding |
|
2728 | ); |
|
2729 | } |
|
2730 | ||
2731 | /** |
|
2732 | * Gets the substring after the last occurrence of a separator. |
|
@@ 2739-2763 (lines=25) @@ | ||
2736 | * |
|
2737 | * @return static |
|
2738 | */ |
|
2739 | public function afterLastIgnoreCase(string $separator): self |
|
2740 | { |
|
2741 | if ($separator === '') { |
|
2742 | return static::create(); |
|
2743 | } |
|
2744 | ||
2745 | if ($this->str === '') { |
|
2746 | return static::create(); |
|
2747 | } |
|
2748 | ||
2749 | $offset = $this->indexOfLastIgnoreCase($separator); |
|
2750 | if ($offset === false) { |
|
2751 | return static::create('', $this->encoding); |
|
2752 | } |
|
2753 | ||
2754 | return static::create( |
|
2755 | UTF8::substr( |
|
2756 | $this->str, |
|
2757 | $offset + UTF8::strlen($separator, $this->encoding), |
|
2758 | null, |
|
2759 | $this->encoding |
|
2760 | ), |
|
2761 | $this->encoding |
|
2762 | ); |
|
2763 | } |
|
2764 | ||
2765 | /** |
|
2766 | * Gets the substring after the last occurrence of a separator. |
|
@@ 2773-2797 (lines=25) @@ | ||
2770 | * |
|
2771 | * @return static |
|
2772 | */ |
|
2773 | public function afterLast(string $separator): self |
|
2774 | { |
|
2775 | if ($separator === '') { |
|
2776 | return static::create(); |
|
2777 | } |
|
2778 | ||
2779 | if ($this->str === '') { |
|
2780 | return static::create(); |
|
2781 | } |
|
2782 | ||
2783 | $offset = $this->indexOfLast($separator); |
|
2784 | if ($offset === false) { |
|
2785 | return static::create('', $this->encoding); |
|
2786 | } |
|
2787 | ||
2788 | return static::create( |
|
2789 | UTF8::substr( |
|
2790 | $this->str, |
|
2791 | $offset + UTF8::strlen($separator, $this->encoding), |
|
2792 | null, |
|
2793 | $this->encoding |
|
2794 | ), |
|
2795 | $this->encoding |
|
2796 | ); |
|
2797 | } |
|
2798 | ||
2799 | /** |
|
2800 | * Gets the substring before the first occurrence of a separator. |