X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FUtils%2FString.php;h=1643491496d49a1c352e489abb4245c00591ad29;hb=ea1142867356c1d0859b5a51797e34a3c17f7d39;hp=eaae593b46e6551f6696784e259f9266479946e9;hpb=389d11ec7b65de1b7c1b88ed030394c707439118;p=civicrm-core.git diff --git a/CRM/Utils/String.php b/CRM/Utils/String.php index eaae593b46..1643491496 100644 --- a/CRM/Utils/String.php +++ b/CRM/Utils/String.php @@ -1,9 +1,9 @@ addCoreResources('html-header'); - return CRM_Core_Region::instance('html-header')->render('', FALSE) . $html; - } - /** * Given an ezComponents-parsed representation of * a text with alternatives return only the first one @@ -607,6 +611,8 @@ class CRM_Utils_String { * * @param string $string * @param int $maxLen + * + * @return string */ static function ellipsify($string, $maxLen) { $len = strlen($string); @@ -639,7 +645,10 @@ class CRM_Utils_String { * "admin foo" => array(NULL,"admin foo") * "cms:admin foo" => array("cms", "admin foo") * + * @param $delim * @param string $string e.g. "view all contacts". Syntax: "[prefix:]name" + * @param null $defaultPrefix + * * @return array (0 => string|NULL $prefix, 1 => string $value) */ public static function parsePrefix($delim, $string, $defaultPrefix = NULL) { @@ -652,6 +661,73 @@ class CRM_Utils_String { } } + /** + * this function will mask part of the the user portion of an Email address (everything before the @) + * + * @param string $email the email address to be masked + * @param string $maskChar the character used for masking + * @param integer $percent the percentage of the user portion to be masked + * + * @return string returns the masked Email address + */ + public static function maskEmail($email, $maskChar= '*', $percent=50) { + list($user, $domain) = preg_split("/@/", $email); + $len = strlen($user); + $maskCount = floor($len * $percent /100); + $offset = floor(($len - $maskCount) / 2); + + $masked = substr($user, 0, $offset) + .str_repeat($maskChar, $maskCount) + .substr($user, $maskCount + $offset); + + return($masked.'@'.$domain); + } + + /** + * this function compares two strings + * + * @param string $strOne string one + * @param string $strTwo string two + * @param boolean $case boolean indicating whether you want the comparison to be case sensitive or not + * + * @return boolean TRUE (string are identical); FALSE (strings are not identical) + */ + public static function compareStr($strOne, $strTwo, $case) { + if ($case == TRUE) { + // Convert to lowercase and trim white spaces + if (strtolower(trim($strOne)) == strtolower(trim($strTwo))) { + // yes - they are identical + return TRUE; + } + else { + // not identical + return FALSE; + } + } + if ($case == FALSE) { + // Trim white spaces + if (trim($strOne) == trim($strTwo)) { + // yes - they are identical + return TRUE; + } + else { + // not identical + return FALSE; + } + } + } + /** + * Many parts of the codebase have a convention of internally passing around + * HTML-encoded URLs. This effectively means that "&" is replaced by "&" + * (because most other odd characters are %-escaped in URLs; and %-escaped + * strings don't need any extra escaping in HTML). + * + * @param string $url URL with HTML entities + * @return string URL without HTML entities + */ + public static function unstupifyUrl($htmlUrl) { + return str_replace('&', '&', $htmlUrl); + } }