Completed
Push — master ( e94d62...c695c6 )
by Jean-Christophe
01:45
created

StrUtils::replaceArray()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 5
nc 2
nop 3
1
<?php
2
3
namespace Ubiquity\utils;
4
5
/**
6
 * String utilities
7
 * @author jc
8
 * @version 1.0.0.1
9
 */
10
class StrUtils {
11
12
	public static function startswith($hay, $needle) {
13
		return \substr($hay, 0, strlen($needle)) === $needle;
14
	}
15
16
	public static function endswith($hay, $needle) {
17
		return \substr($hay, -strlen($needle)) === $needle;
18
	}
19
20
	public static function getBooleanStr($value) {
21
		$ret="false";
22
		if ($value)
23
			$ret="true";
24
		return $ret;
25
	}
26
27
	public static function isNull($s) {
28
		return (!isset($s) || NULL === $s || "" === $s);
29
	}
30
31
	public static function isNotNull($s) {
32
		return (isset($s) && NULL !== $s && "" !== $s);
33
	}
34
35
	public static function isBooleanTrue($s) {
36
		return $s === true || $s === "true" || $s === 1 || $s === "1";
37
	}
38
39
	public static function isBooleanFalse($s) {
40
		return $s === false || $s === "false" || $s === 0 || $s === "0";
41
	}
42
43
	public static function isBoolean($value) {
44
		return \is_bool($value);
45
	}
46
47
	public static function pluralize($count, $caption, $plural=NULL) {
48
		if ($plural == NULL) {
49
			$pluralChar="s";
50
			if (self::endswith($caption, "au")) {
51
				$pluralChar="x";
52
			}
53
			$plural=$caption . $pluralChar;
54
		}
55
		switch($count) {
56
			case 0:
57
				$result="aucun " . $caption;
58
				break;
59
			case 1:
60
				$result=$count . " " . $caption;
61
				break;
62
			default:
63
				$result=$count . " " . $plural;
64
				break;
65
		}
66
		return $result;
67
	}
68
69
	public static function firstReplace($haystack, $needle, $replace) {
70
		$newstring=$haystack;
71
		$pos=strpos($haystack, $needle);
72
		if ($pos !== false) {
73
			$newstring=\substr_replace($haystack, $replace, $pos, strlen($needle));
74
		}
75
		return $newstring;
76
	}
77
78
	public static function replaceArray($haystack, $needle, $replaceArray) {
79
		$result=$haystack;
80
		foreach ( $replaceArray as $replace ) {
81
			$result=self::firstReplace($result, $needle, $replace);
82
		}
83
		return $result;
84
	}
85
86
	public static function cleanAttribute($attr, $replacement="_") {
87
		$result=preg_replace('/[^a-zA-Z0-9\-]/s', $replacement, $attr);
88
		return \str_replace($replacement . $replacement, $replacement, $result);
89
	}
90
}
91
92