@@ -130,6 +130,46 @@ public static function isEmail($s) {
130
130
return filter_var ($ s , FILTER_VALIDATE_EMAIL );
131
131
}
132
132
133
+ /**
134
+ * NULL-safe startsWith test for strings.
135
+ * @return boolean TRUE when the test succeeds, FALSE if any argument is NULL or test failed.
136
+ */
137
+ public static function startsWith ($ haystack , $ needle , $ ignoreCase = FALSE ) {
138
+ if (($ haystack == NULL ) || ($ needle == NULL )) return FALSE ;
139
+ if ($ ignoreCase ) {
140
+ $ haystack = mb_strtolower ($ haystack );
141
+ $ needle = mb_strtolower ($ needle );
142
+ }
143
+ return mb_strpos ($ haystack , $ needle ) === 0 ;
144
+ }
145
+
146
+ /**
147
+ * NULL-safe endsWith test for strings.
148
+ * @return boolean TRUE when the test succeeds, FALSE if any argument is NULL or test failed.
149
+ */
150
+ public static function endsWith ($ haystack , $ needle , $ ignoreCase = FALSE ) {
151
+ if (($ haystack == NULL ) || ($ needle == NULL )) return FALSE ;
152
+ if ($ ignoreCase ) {
153
+ $ haystack = mb_strtolower ($ haystack );
154
+ $ needle = mb_strtolower ($ needle );
155
+ }
156
+ return mb_strpos ($ haystack , $ needle ) == mb_strlen ($ haystack )-mb_strlen ($ needle );
157
+ }
158
+
159
+ /**
160
+ * NULL-safe contains test for strings.
161
+ * @return boolean TRUE when the test succeeds, FALSE if any argument is NULL or test failed.
162
+ */
163
+ public static function contains ($ haystack , $ needle , $ ignoreCase = FALSE ) {
164
+ if (($ haystack == NULL ) || ($ needle == NULL )) return FALSE ;
165
+ if ($ ignoreCase ) {
166
+ $ haystack = mb_strtolower ($ haystack );
167
+ $ needle = mb_strtolower ($ needle );
168
+ }
169
+ return mb_strpos ($ haystack , $ needle ) !== FALSE ;
170
+ }
171
+
172
+ /**
133
173
/**
134
174
* Checks whether an array is associative or not.
135
175
* @param array $arr - the array to be tested
0 commit comments