Passed
Push — master ( 8a1f64...d6f56d )
by Radu
01:38
created

Strings::contains()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 5
dl 0
loc 9
rs 10
c 0
b 0
f 0
cc 4
nc 4
nop 3
1
<?php
2
namespace WebServCo\Framework\Utils;
3
4
final class Strings
5
{
6
    public static function startsWith($haystack, $needle, $ignoreCase = true)
7
    {
8
        if (false !== $ignoreCase) {
9
            $function = function_exists('mb_stripos') ? 'mb_stripos' : 'stripos';
10
        } else {
11
            $function = function_exists('mb_strpos') ? 'mb_strpos' : 'strpos';
12
        }
13
14
        return 0 === $function($haystack, $needle);
15
    }
16
17
    public static function endsWith($haystack, $needle)
18
    {
19
        $functionSubstr = function_exists('mb_substr') ? 'mb_substr' : 'substr';
20
        $functionStrlen = function_exists('mb_strlen') ? 'mb_strlen' : 'strlen';
21
        $check = $functionSubstr($haystack, $functionStrlen($haystack) - ($functionStrlen($needle)));
22
        return $check == $needle;
23
    }
24
25
    public static function contains($haystack, $needle, $ignoreCase = true)
26
    {
27
        if (false !== $ignoreCase) {
28
            $function = function_exists('mb_stripos') ? 'mb_stripos' : 'stripos';
29
        } else {
30
            $function = function_exists('mb_strpos') ? 'mb_strpos' : 'strpos';
31
        }
32
33
        return false !== $function($haystack, $needle);
34
    }
35
36
    public static function stripNonDigits($haystack)
37
    {
38
        return preg_replace("/\D+/", '', $haystack);
39
    }
40
}
41