在数组中搜索电子邮件地址并屏蔽它


Search array for email address and mask it

这里有点麻烦。

下面我有一个我正在使用的数组示例。

$custom_replace = Array ( 
    [0] => 12345 
    [1] => (111) 111-1111 
    [2] => (111) 111-2222 
    [3] => email@address.com 
    [4] => 214113 
) 

我的目标是能够在这个数组中搜索电子邮件地址并屏蔽它。到目前为止,我所做的是:

    $dEmail = filter_var_array($custom_replace, FILTER_VALIDATE_EMAIL);
    $first = current(array_filter($dEmail));
    $newStr = $first; 
    $search = array("@", ".com", ".net", ".biz", ".me");  
    $replace = array(" at ", " dot com", " dot net", " dot biz", " dot me");  
    $mask = str_replace($search, $replace, $newStr);
    echo $mask;

上面的代码使我能够看到屏蔽的电子邮件。至于问题出在哪里?"custom_replace"数组与另一个数组合并,如下所示:

$output = str_replace(array_merge($template_search, $custom_search), array_merge($template_replace, $custom_replace), html_entity_decode($settings["detail_format"], ENT_QUOTES));

我想弄清楚的是如何获取掩码值并将其包含在数组中,并使其成为合并的一部分。

我期待你的想法。我会尽我所能回答任何问题。

我不明白你到底想做什么,但根据你问题的标题"搜索电子邮件地址并屏蔽它",你可以试试这个:

$regex_email = "/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+'.[a-zA-Z0-9-.]+$/";
$array = array (12345, '(111) 111-1111', '(111) 111-2222', 'email@address.com', 214113);
$search = array("@", ".com", ".net", ".biz", ".me");  
$replace = array(" at ", " dot com", " dot net", " dot biz", " dot me");  
foreach($array as &$value){
    if ( preg_match( $regex_email, $value ) )
        $value = str_replace($search, $replace, $value);
}
print_r($array);

您的解释不太清楚您想要什么,但我想您正在寻找一个具体准确的电子邮件地址。

以下是您应该在您的案例中使用的PHP代码:

$custom_replace = array('12345', '(111) 111-1111' , '(111) 111-2222', 'email@address.com', '214113');
var_dump($custom_replace);
$email = 'email@address.com'; // Assuming, you are looking for a know string
$newArray = array();
foreach ($custom_replace as $value) {
  ($value == $email) ? '' : $newArray[] = $value;
}
var_dump($newArray);

这是结果,您会注意到没有您试图删除的电子邮件地址,其他数据被重新组装到一个新的数组中。

以下是var_dump:的结果

array(5) {
  [0]=> string(5) "12345"
  [1]=> string(14) "(111) 111-1111"
  [2]=> string(14) "(111) 111-2222"
  [3]=> string(17) "email@address.com"
  [4]=> string(6) "214113"
}
array(4) {
  [0]=> string(5) "12345"
  [1]=> string(14) "(111) 111-1111"
  [2]=> string(14) "(111) 111-2222"
  [3]=> string(6) "214113"
}

IDEONE演示

相关文章: