diff --git a/README.md b/README.md index bc77d6a..3bc93f3 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,10 @@ Open for PRs. Please see the original repository for credits. == Changelog == += 2.8.6 = + +* changed deprecated import() function so the script works with >=PHP8.0 + = 2.8.5 = * FIXED: * Added a bunch of PRs and made it work with latest Wordpress diff --git a/util/crayon_util.class.php b/util/crayon_util.class.php index 9a40608..4d5157e 100644 --- a/util/crayon_util.class.php +++ b/util/crayon_util.class.php @@ -1,7 +1,9 @@ $v) { if (is_array($v)) { @@ -319,7 +329,8 @@ EOT; return $result; } - private static function _array_flip(&$array, $k, $v) { + private static function _array_flip(&$array, $k, $v) + { if (is_string($v) || is_int($v)) { $array[$v] = $k; } else { @@ -328,7 +339,8 @@ EOT; } // Detects if device is touchscreen or mobile - public static function is_touch() { + public static function is_touch() + { // Only detect once if (self::$touchscreen !== NULL) { return self::$touchscreen; @@ -347,7 +359,8 @@ EOT; } // Removes duplicates in array, ensures they are all strings - public static function array_unique_str($array) { + public static function array_unique_str($array) + { if (!is_array($array) || empty($array)) { return array(); } @@ -358,7 +371,8 @@ EOT; } // Same as array_key_exists, but returns the key when exists, else FALSE; - public static function array_key_exists($key, $array) { + public static function array_key_exists($key, $array) + { if (!is_array($array) || empty($array) || !is_string($key) || empty($key)) { FALSE; } @@ -368,7 +382,8 @@ EOT; } // Performs explode() on a string with the given delimiter and trims all whitespace - public static function trim_e($str, $delimiter = ',') { + public static function trim_e($str, $delimiter = ',') + { if (is_string($delimiter)) { $str = trim(preg_replace('|\s*(?:' . preg_quote($delimiter) . ')\s*|', $delimiter, $str)); return explode($delimiter, $str); @@ -378,7 +393,8 @@ EOT; /* Creates an array of integers based on a given range string of format "int - int" Eg. range_str('2 - 5'); */ - public static function range_str($str) { + public static function range_str($str) + { preg_match('#(\d+)\s*-\s*(\d+)#', $str, $matches); if (count($matches) == 3) { return range($matches[1], $matches[2]); @@ -387,7 +403,8 @@ EOT; } // Creates an array out of a single range string (e.i "x-y") - public static function range_str_single($str) { + public static function range_str_single($str) + { $match = preg_match('#(\d+)(?:\s*-\s*(\d+))?#', $str, $matches); if ($match > 0) { if (empty($matches[2])) { @@ -401,7 +418,8 @@ EOT; } // Sets a variable to a string if valid - public static function str(&$var, $str, $escape = TRUE) { + public static function str(&$var, $str, $escape = TRUE) + { if (is_string($str)) { $var = ($escape == TRUE ? self::htmlentities($str) : $str); return TRUE; @@ -410,21 +428,25 @@ EOT; } // Converts all special characters to entities - public static function htmlentities($str) { + public static function htmlentities($str) + { return htmlentities($str, ENT_COMPAT, 'UTF-8'); } - public static function html_entity_decode($str) { + public static function html_entity_decode($str) + { return html_entity_decode($str, ENT_QUOTES, 'UTF-8'); } // Converts <, >, & into entities - public static function htmlspecialchars($str) { + public static function htmlspecialchars($str) + { return htmlspecialchars($str, ENT_NOQUOTES, 'UTF-8'); } // Sets a variable to an int if valid - public static function num(&$var, $num) { + public static function num(&$var, $num) + { if (is_numeric($num)) { $var = intval($num); return TRUE; @@ -433,7 +455,8 @@ EOT; } // Sets a variable to an array if valid - public static function arr(&$var, $array) { + public static function arr(&$var, $array) + { if (is_array($array)) { $var = $array; return TRUE; @@ -442,26 +465,31 @@ EOT; } // Sets a variable to an array if valid - public static function set_array($var, $array, $false = FALSE) { + public static function set_array($var, $array, $false = FALSE) + { return isset($array[$var]) ? $array[$var] : $false; } // Sets a variable to null if not set - public static function set_var(&$var, $false = NULL) { + public static function set_var(&$var, $false = NULL) + { $var = isset($var) ? $var : $false; } // Sets a variable to null if not set - public static function set_default(&$var, $default = NULL) { + public static function set_default(&$var, $default = NULL) + { return isset($var) ? $var : $default; } - public static function set_default_null($var, $default = NULL) { + public static function set_default_null($var, $default = NULL) + { return $var !== NULL ? $var : $default; } // Thanks, http://www.php.net/manual/en/function.str-replace.php#102186 - function str_replace_once($str_pattern, $str_replacement, $string) { + function str_replace_once($str_pattern, $str_replacement, $string) + { if (strpos($string, $str_pattern) !== FALSE) { $occurrence = strpos($string, $str_pattern); return substr_replace($string, $str_replacement, strpos($string, $str_pattern), strlen($str_pattern)); @@ -470,7 +498,8 @@ EOT; } // Removes non-numeric chars in string - public static function clean_int($str, $return_zero = TRUE) { + public static function clean_int($str, $return_zero = TRUE) + { $str = preg_replace('#[^\d]#', '', $str); if ($return_zero) { // If '', then returns 0 @@ -482,38 +511,44 @@ EOT; } // Replaces whitespace with hypthens - public static function space_to_hyphen($str) { + public static function space_to_hyphen($str) + { return preg_replace('#\s+#', '-', $str); } // Replaces hypthens with spaces - public static function hyphen_to_space($str) { + public static function hyphen_to_space($str) + { return preg_replace('#-#', ' ', $str); } // Remove comments with /* */, // or #, if they occur before any other char on a line - public static function clean_comments($str) { + public static function clean_comments($str) + { $comment_pattern = '#(?:^\s*/\*.*?^\s*\*/)|(?:^(?!\s*$)[\s]*(?://|\#)[^\r\n]*)#ms'; $str = preg_replace($comment_pattern, '', $str); return $str; } // Convert to title case and replace underscores with spaces - public static function ucwords($str) { + public static function ucwords($str) + { $str = strval($str); $str = str_replace('_', ' ', $str); return ucwords($str); } // Escapes regex characters as literals - public static function esc_regex($regex) { + public static function esc_regex($regex) + { return /*htmlspecialchars(*/ preg_quote($regex) /* , ENT_NOQUOTES)*/ ; } // Escapes hash character as literals - public static function esc_hash($regex) { + public static function esc_hash($regex) + { if (is_string($regex)) { return preg_replace('|(? $val) { $get_vars[] = $get . '=' . $val; } - return implode($get_vars, '&'); + return implode('&', $get_vars); } // Creates a unique ID from a string - public static function str_uid($str) { + public static function str_uid($str) + { $uid = 0; for ($i = 1; $i < strlen($str); $i++) { $uid += round(ord($str[$i]) * ($i / strlen($str)), 2) * 100; @@ -658,7 +709,8 @@ EOT; } // Breaks up a version string into parts - public static function version_parts($version) { + public static function version_parts($version) + { preg_match('#[\d+\.]+#msi', $version, $match); if (count($match[0])) { return explode('.', $match[0]); @@ -668,7 +720,8 @@ EOT; } // Compares two version strings lexicographically - public static function version_compare($a, $b) { + public static function version_compare($a, $b) + { $a_parts = self::version_parts($a); $b_parts = self::version_parts($b); return self::array_compare_lexi($a_parts, $b_parts); @@ -676,7 +729,8 @@ EOT; // Compares two arrays lexicographically // This could be extended with a compare function argument - public static function array_compare_lexi($a, $b) { + public static function array_compare_lexi($a, $b) + { $short = count($a) < count($b) ? $a : $b; for ($i = 0; $i < count($short); $i++) { if ($a[$i] > $b[$i]) { @@ -689,7 +743,8 @@ EOT; } // strpos with an array of $needles - public static function strposa($haystack, $needles, $insensitive = FALSE) { + public static function strposa($haystack, $needles, $insensitive = FALSE) + { if (is_array($needles)) { foreach ($needles as $str) { if (is_array($str)) { @@ -708,7 +763,8 @@ EOT; } // tests if $needle is equal to any strings in $haystack - public static function str_equal_array($needle, $haystack, $case_insensitive = TRUE) { + public static function str_equal_array($needle, $haystack, $case_insensitive = TRUE) + { if (!is_string($needle) || !is_array($haystack)) { return FALSE; } @@ -730,7 +786,8 @@ EOT; } // Support for singular and plural string variations - public static function spnum($int, $singular, $plural = NULL) { + public static function spnum($int, $singular, $plural = NULL) + { if (!is_int($int) || !is_string($singular)) { $int = intval($int); $singular = strval($singular); @@ -742,12 +799,14 @@ EOT; } // Turn boolean into Yes/No - public static function bool_yn($bool) { + public static function bool_yn($bool) + { return $bool ? 'Yes' : 'No'; } // String to boolean, default decides what boolean value to return when not found - public static function str_to_bool($str, $default = TRUE) { + public static function str_to_bool($str, $default = TRUE) + { $str = self::tlower($str); if ($default === FALSE) { if ($str == 'true' || $str == 'yes' || $str == '1') { @@ -764,7 +823,8 @@ EOT; } } - public static function bool_to_str($bool, $strict = FALSE) { + public static function bool_to_str($bool, $strict = FALSE) + { if ($strict) { return $bool === TRUE ? 'true' : 'false'; } else { @@ -772,24 +832,28 @@ EOT; } } - public static function tlower($str) { + public static function tlower($str) + { return trim(strtolower($str)); } // Escapes $ and \ from the replacement to avoid becoming a backreference - public static function preg_replace_escape_back($pattern, $replacement, $subject, $limit = -1, &$count = 0) { + public static function preg_replace_escape_back($pattern, $replacement, $subject, $limit = -1, &$count = 0) + { return preg_replace($pattern, self::preg_escape_back($replacement), $subject, $limit, $count); } // Escape backreferences from string for use with regex - public static function preg_escape_back($string) { + public static function preg_escape_back($string) + { // Replace $ with \$ and \ with \\ $string = preg_replace('#(\\$|\\\\)#', '\\\\$1', $string); return $string; } // Detect if on a Mac or PC - public static function is_mac($default = FALSE) { + public static function is_mac($default = FALSE) + { $user = $_SERVER['HTTP_USER_AGENT']; if (stripos($user, 'macintosh') !== FALSE) { return TRUE; @@ -801,7 +865,8 @@ EOT; } // Decodes WP html entities - public static function html_entity_decode_wp($str) { + public static function html_entity_decode_wp($str) + { if (!is_string($str) || empty($str)) { return $str; } @@ -814,14 +879,16 @@ EOT; // Constructs an html element // If $content = FALSE, then element is closed - public static function html_element($name, $content = NULL, $attributes = array()) { + public static function html_element($name, $content = NULL, $attributes = array()) + { $atts = self::html_attributes($attributes); $tag = "<$name $atts"; $tag .= $content === FALSE ? '/>' : ">$content"; return $tag; } - public static function html_attributes($attributes, $assign = '=', $quote = '"', $glue = ' ') { + public static function html_attributes($attributes, $assign = '=', $quote = '"', $glue = ' ') + { $atts = ''; foreach ($attributes as $k => $v) { $atts .= $k . $assign . $quote . $v . $quote . $glue; @@ -830,16 +897,18 @@ EOT; } // Strips only the given tags in the given HTML string. - public static function strip_tags_blacklist($html, $tags) { + public static function strip_tags_blacklist($html, $tags) + { foreach ($tags as $tag) { - $regex = '#<\s*\b' . $tag . '\b[^>]*>.*?<\s*/\s*'. $tag . '\b[^>]*>?#msi'; + $regex = '#<\s*\b' . $tag . '\b[^>]*>.*?<\s*/\s*' . $tag . '\b[^>]*>?#msi'; $html = preg_replace($regex, '', $html); } return $html; } // Strips the given attributes found in the given HTML string. - public static function strip_attributes($html, $atts) { + public static function strip_attributes($html, $atts) + { foreach ($atts as $att) { $regex = '#\b' . $att . '\b(\s*=\s*[\'"][^\'"]*[\'"])?(?=[^<]*>)#msi'; $html = preg_replace($regex, '', $html); @@ -848,7 +917,8 @@ EOT; } // Strips all event attributes on DOM elements (prefixe with "on"). - public static function strip_event_attributes($html) { + public static function strip_event_attributes($html) + { $regex = '#\bon\w+\b(\s*=\s*[\'"][^\'"]*[\'"])?(?=[^<]*>)#msi'; return preg_replace($regex, '', $html); }