我不是在问完整的电子邮件验证.
我只是想知道电子邮件地址中允许的字符user-name和server部分内容.这可能过于简单,也许电子邮件地址可以采取其他形式,但我不在乎.我只询问这个简单的形式:( user-name@server例如wild.wezyr@best-server-ever.com)和两个部分允许的字符.
我正在构建一个简单的朋友/好友系统,当有人试图搜索新朋友时,我想显示部分隐藏的电子邮件地址,以便了解用户可能是谁,而不会泄露实际细节.
所以我想abcdlkjlkjk@hotmail.com成为abcdl******@hotmail.com.
作为测试,我写道:
<?php
$email = "abcdlkjlkjk@hotmail.com";
$em = explode("@",$email);
$name = $em[0];
$len = strlen($name);
$showLen = floor($len/2);
$str_arr = str_split($name);
for($ii=$showLen;$ii<$len;$ii++){
$str_arr[$ii] = '*';
}
$em[0] = implode('',$str_arr);
$new_name = implode('@',$em);
echo $new_name;
Run Code Online (Sandbox Code Playgroud)
这有效,但我想知道是否有更简单/更短的方法来应用相同的逻辑?可能像正则表达式?
我有一个简单的任务与PHP,但由于我不熟悉正则表达式或其他东西......我不知道我将要做什么.
我想要的是非常简单的......
假设我有这些变量:
$Email = 'john@example.com'; // output : ****@example.com
$Email2 = 'janedoe@example.com'; // output : *******@example.com
$Email3 = 'johndoe2012@example.com'; // output : ***********@example.com
$Phone = '0821212121'; // output : 082121**** << REPLACE LAST FOUR DIGIT WITH *
Run Code Online (Sandbox Code Playgroud)
如何用PHP做到这一点?谢谢.
我想用*符号替换前3个字符和最后3个字符而不使用任何内置函数.
$string = array("johndoee","shawnmarsh","peterparker","johndoee","shawnmarsh","peterparker");
Run Code Online (Sandbox Code Playgroud)
你能指导我吗?有没有办法做到这一点?