【问题标题】:Remove @hotmail.com from string [closed]从字符串中删除@hotmail.com [关闭]
【发布时间】:2012-04-21 23:36:12
【问题描述】:

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

谢谢

【问题讨论】:

  • 我没有,我试图删除用空格替换@,然后删除字符串中第一个 wrod 之后的所有内容。但我猜还有更简单的方法?
  • @AJ 的目的是:当您首先表明您尝试自己解决问题时,您会得到更好的答案。仅供参考。 :)

标签: php


【解决方案1】:
function remove_domain($email) {
  $v = explode("@", $email);
  return $v[0];
}

【讨论】:

    【解决方案2】:

    预想办法:

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

    // 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

    【讨论】:

      【解决方案3】:

      你可以使用str_replace

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

      在此处查看文档:http://php.net/manual/en/function.str-replace.php

      【讨论】:

      • 如果 user1056534 想要删除“@gmail.com”而不是“hotmail.com”,他是否应该在此站点上创建另一个问题来解决他的问题?
      • 考虑到他现在知道如何使用str_replace,他应该开动脑筋尝试解决它。​​
      • 你能告诉我如何使用 str_replace 从电子邮件中删除任意域吗?
      • 对于一个问这个问题的人没有问如何使用str_replace 删除任意域,另外两个如果你不了解自己,那么你自己问一个关于堆栈溢出的问题,而不是在我的答案。
      • @Riateche 我可以.. $domain = 'gmail.com'; 然后$email = str_replace('@'.$domain, '', $email); ... 有那么难吗?
      【解决方案4】:

      我不确定这是否是最好的方法,但您可以尝试以下方法:

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

      希望对你有帮助!

      【讨论】:

        【解决方案5】:

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

        $email = 'blabla@hotmail.com';
        
        echo strstr($email, '@', true);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-10-02
          • 1970-01-01
          • 1970-01-01
          • 2021-03-17
          • 1970-01-01
          • 1970-01-01
          • 2011-07-05
          相关资源
          最近更新 更多