从字符串中删除@ hotmail.com

时间:2012-04-21 23:36:12

标签: php

我想知道如何从@hotmail.com删除example@hotmail.com

由于

5 个答案:

答案 0 :(得分:2)

function remove_domain($email) {
  $v = explode("@", $email);
  return $v[0];
}

答案 1 :(得分:2)

Preg方式:

这将从任何电子邮件中删除任何域名

// Sample email address for testing:
$email = "example@anything.tld";
// Now let's remove @anything.tld:
$email = preg_replace('/@.+/','',$email);
// And then echo results out to see what we got:
echo $email;

所以大多数重要的是这一行,关注它:

echo preg_replace('/@.+/', '', 'example@deleteme.com');

它使用正则表达式匹配删除任何以@开头,后跟至少一个任意字符的内容。之后它打印出结果。所以所有这些都可以通过单行完成,并且每个域都得到同等的支持(扔掉)。

之后,$email只包含"example"并删除了@anything.tld

这种方式$email可以是"my.mail.box@hotmail.com""somebody@mail.ex-ample.com"或任何你能想象到的。

您可以在此处详细了解正则表达式:function.preg-replace.php,此处:pcre.org或此处:wikipedia/Regular_expression

如果你想使用str_replace:

$domain = 'gmail.com';
$email = str_replace('@'.$domain, '', $email);

PHP手册页:function.str-replace.php

答案 2 :(得分:1)

您可以使用str_replace

$email = 'example@hotmail.com';
echo str_replace('@hotmail.com', '', $email); // example

点击此处的文档:http://php.net/manual/en/function.str-replace.php

答案 3 :(得分:1)

我不确定这是否是执行此操作的最佳方式,但您可以尝试以下方式:

$string = "email@hotmail.com";
$new_string = explode("@", $string);
print $new_string[0] // will print 'email'

希望它有所帮助!

答案 4 :(得分:1)

或仅使用strstr(string $haystack ,mixed $needle [,bool $before_needle = false ]), 那么你不需要检查特定的域名:

$email = 'blabla@hotmail.com';

echo strstr($email, '@', true);