如何在php变量中找到某些文本,然后替换两边字符之间的所有文本



我在PHP中有一个变量,它来自一个包含电子邮件地址的表单,所有地址都用逗号('(分隔例如:user@domain1.com,user@domain2.com,user3@domain2.com,user2@domain4.com

我试图实现的是查看变量,例如找到@domain2.com,并删除电子邮件两侧逗号之间的所有内容。

我知道我可以使用str_replace来替换我想要的文本,比如:

$emails=str_replace("@domain2.com", "", "$emailscomma");

然而,我更希望根据我要求它查找的文本删除整个电子邮件。

所以在这个例子中,我想删除user@domain2.com和user3@domain2.com

这可能吗?

搜索了我能找到的任何文章,但找不到找到的东西,然后替换,但不仅仅是它找到的文本。

当然可以使用正则表达式,但我建议使用更简单的方法。对数组进行操作要比对字符串和子字符串进行操作容易得多。我会把你的字符串转换成一个数组,然后过滤它

$emails = "user@domain1.com,user@domain2.com,user3@domain2.com,user2@domain4.com";
// Convert to array (by comma separator)
$emailsArray = explode(',', $emails);
$filteredArray = array_filter($emailsArray, function($email) {
// filters out all emails with '@domain2.com' substring
return strpos($email, '@domain2.com') === false;
});
print_r($filteredArray);

现在,您可以再次将筛选后的数组转换为字符串。只需使用implode()函数。

最新更新