ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
StringUtil.php
Go to the documentation of this file.
1<?php
2
3namespace Sabre\DAV;
4
17
27 static function textMatch($haystack, $needle, $collation, $matchType = 'contains') {
28
29 switch ($collation) {
30
31 case 'i;ascii-casemap' :
32 // default strtolower takes locale into consideration
33 // we don't want this.
34 $haystack = str_replace(range('a', 'z'), range('A', 'Z'), $haystack);
35 $needle = str_replace(range('a', 'z'), range('A', 'Z'), $needle);
36 break;
37
38 case 'i;octet' :
39 // Do nothing
40 break;
41
42 case 'i;unicode-casemap' :
43 $haystack = mb_strtoupper($haystack, 'UTF-8');
44 $needle = mb_strtoupper($needle, 'UTF-8');
45 break;
46
47 default :
48 throw new Exception\BadRequest('Collation type: ' . $collation . ' is not supported');
49
50 }
51
52 switch ($matchType) {
53
54 case 'contains' :
55 return strpos($haystack, $needle) !== false;
56 case 'equals' :
57 return $haystack === $needle;
58 case 'starts-with' :
59 return strpos($haystack, $needle) === 0;
60 case 'ends-with' :
61 return strrpos($haystack, $needle) === strlen($haystack) - strlen($needle);
62 default :
63 throw new Exception\BadRequest('Match-type: ' . $matchType . ' is not supported');
64
65 }
66
67 }
68
79 static function ensureUTF8($input) {
80
81 $encoding = mb_detect_encoding($input, ['UTF-8', 'ISO-8859-1'], true);
82
83 if ($encoding === 'ISO-8859-1') {
84 return utf8_encode($input);
85 } else {
86 return $input;
87 }
88
89 }
90
91}
An exception for terminatinating execution or to throw for unit testing.
String utility.
Definition: StringUtil.php:16
static textMatch($haystack, $needle, $collation, $matchType='contains')
Checks if a needle occurs in a haystack ;)
Definition: StringUtil.php:27
static ensureUTF8($input)
This method takes an input string, checks if it's not valid UTF-8 and attempts to convert it to UTF-8...
Definition: StringUtil.php:79