Selaa lähdekoodia

Add str_starts_with and str_ends_with to PHP versions older than 8 (#6832)

* Add str_starts_with and str_ends_with to PHP versions older than 8

* Update functions.php
frytimo 1 vuosi sitten
vanhempi
commit
d364b6a496
1 muutettua tiedostoa jossa 29 lisäystä ja 1 poistoa
  1. 29 1
      resources/functions.php

+ 29 - 1
resources/functions.php

@@ -23,8 +23,36 @@
 
 	  Contributor(s):
 	  Mark J Crane <[email protected]>
+	  Tim Fry <[email protected]>
 	  Luis Daniel Lucio Quiroz <[email protected]>
-	 */
+	*/
+
+	if (!function_exists('str_starts_with')) {
+		/**
+		 * Checks if a string starts with a given substring
+		 * <p>Performs a case-sensitive check indicating if <b>haystack</b> begins with <b>needle</b>.</p>
+		 * @param string $haystack The string to search in.
+		 * @param string $needle The substring to search for in the <b>haystack</b>.
+		 * @return bool Returns <i>true</i> if <b>haystack</b> begins with <b>needle</b>, <i>false</i> otherwise
+		 * @link https://www.php.net/manual/en/function.str-starts-with.php Official PHP documentation
+		 */
+		function str_starts_with(string $haystack, string $needle): bool {
+			return substr_compare($haystack, $needle, 0, strlen($needle)) === 0;
+		}
+	}
+
+	if (!function_exists('str_ends_with')) {
+		/**
+		 * Checks if a string ends with a given substring
+		 * <p>Performs a case-sensitive check indicating if <b>haystack</b> ends with <b>needle</b>.</p>
+		 * @param string $haystack The string to search in.
+		 * @param string $needle The substring to search for in the <b>haystack</b>.
+		 * @return bool Returns <i>true</i> if <b>haystack</b> ends with <b>needle</b>, <i>false</i> otherwise.
+		 */
+		function str_ends_with(string $haystack, string $needle): bool {
+			return substr_compare($haystack, $needle, -1*strlen($needle)) === 0;
+		}
+	}
 
 	if (!function_exists('mb_strtoupper')) {