Conditions | 4 |
Paths | 4 |
Total Lines | 28 |
Code Lines | 14 |
Lines | 0 |
Ratio | 0 % |
Tests | 13 |
CRAP Score | 4.0058 |
Changes | 0 |
1 | <?php |
||
6082 | public static function str_insert( |
||
6083 | string $str, |
||
6084 | string $substring, |
||
6085 | int $index, |
||
6086 | string $encoding = 'UTF-8' |
||
6087 | ): string { |
||
6088 | 8 | if ($encoding === 'UTF-8') { |
|
6089 | 4 | $len = (int) \mb_strlen($str); |
|
6090 | 4 | if ($index > $len) { |
|
6091 | return $str; |
||
6092 | } |
||
6093 | |||
6094 | /** @noinspection UnnecessaryCastingInspection */ |
||
6095 | 4 | return (string) \mb_substr($str, 0, $index) . |
|
6096 | 4 | $substring . |
|
6097 | 4 | (string) \mb_substr($str, $index, $len); |
|
6098 | } |
||
6099 | |||
6100 | 4 | $encoding = self::normalize_encoding($encoding, 'UTF-8'); |
|
6101 | |||
6102 | 4 | $len = (int) self::strlen($str, $encoding); |
|
6103 | 4 | if ($index > $len) { |
|
6104 | 1 | return $str; |
|
6105 | } |
||
6106 | |||
6107 | 3 | return ((string) self::substr($str, 0, $index, $encoding)) . |
|
6108 | 3 | $substring . |
|
6109 | 3 | ((string) self::substr($str, $index, $len, $encoding)); |
|
6110 | } |
||
13665 |