llms_anonymize_string( string $string, string $char = '*' )
Anonymize a string.
Description Description
Masks the characters in a string with the specified character leaving a small number of characters visible. For example `llms_anonymize_string( ‘MY_SECRET_STRING’ ) will return ‘MY****NG’.
The number of retained original characters is dependent on the string’s length:
Length | At start | At end | Example |
---|---|---|---|
1 | 0 | 0 | * |
>= 2 && <= 6 | 0 | 1 | *****A |
>= 7 && <= 10 | 0 | 2 | ****AA |
>= 11 | 2 | 2 | AA***AA |
Any string that validates as an email address using is_email()
will be split at the @
symbol and each part of the email address will be anonymized separately, for example: llms_anonymize_string( '[email protected]' )
will return ‘*p@li***om’.
Parameters Parameters
- $string
-
(string) (Required) The input string to be anonymized.
- $char
-
(string) (Optional) The character used to mask the string.
Default value: '*'
Return Return
(string)
Source Source
File: includes/llms.functions.core.php
*/ function llms_anonymize_string( $string, $char = '*' ) { if ( is_email( $string ) ) { $parts = explode( '@', $string ); return llms_anonymize_string( $parts[0] ) . '@' . llms_anonymize_string( $parts[1] ); } $len = strlen( $string ); $at_front = 2; $at_back = 2; if ( 1 === $len ) { return $char; } elseif ( $len <= 6 ) { $at_front = 0; $at_back = 1; } elseif ( $len <= 10 ) { $at_front = 0; } $start = substr( $string, 0, $at_front ); $body = str_repeat( $char, strlen( $string ) - ( $at_front + $at_back ) ); $end = substr( $string, - $at_back ); return "{$start}{$body}{$end}";
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
6.4.0 | Introduced. |