Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中,如何在字符串的2个字符后用叉替换字符串?_Php_Jquery - Fatal编程技术网

在php中,如何在字符串的2个字符后用叉替换字符串?

在php中,如何在字符串的2个字符后用叉替换字符串?,php,jquery,Php,Jquery,我有一封这样的电子邮件 $email="yourname@email.com"; $mob="9000000001"; 如何在php中获得所需的输出,如 email=youxxxx@gmail.com mob=900xxxxxx01 任何需要的帮助您都可以使用此功能: function obfuscate($data) { // for email addresses: do not obfuscate beyond at symbol $clear = strpos($da

我有一封这样的电子邮件

$email="yourname@email.com";
$mob="9000000001";
如何在php中获得所需的输出,如

email=youxxxx@gmail.com
mob=900xxxxxx01

任何需要的帮助

您都可以使用此功能:

function obfuscate($data) {
    // for email addresses: do not obfuscate beyond at symbol
    $clear = strpos($data, "@");
    // for non-emails addresses: keep last two characters clear
    if ($clear === false) $clear = max(0, strlen($data)-2);
    // start hiding from 3rd character onwards, or earlier in some exceptional cases:
    $hide = max(0, min($clear-1, 3));
    return substr($data, 0, $hide) .
           str_repeat("x", $clear - $hide) . 
           substr($data, $clear);
}

echo obfuscate("yourname@email.com"); // youxxxxx@email.com
echo obfuscate("9000000001");         // 900xxxxx01

代码中有一些保护措施(使用最小值和最大值函数)可以在极端情况下(如电子邮件非常短时)不产生不良结果”a@abc.com或者数字只有3位。

获取字符串的第一部分,添加
xxxx
,获取字符串的最后一部分。连接