从php中的字符串中删除@email.com
我只想得到电子邮件地址的左半部分(从php中的字符串中删除@email.com,php,Php,我只想得到电子邮件地址的左半部分(用户名部分username@email.com),所以去掉@及其后面的所有字符。如果您有PHP5.3,您可以使用 如果没有,只需使用可靠的substr $username = substr($email, 0, strpos($email, '@')); 可以使用explode()拆分字符串 由于还没有人使用过preg_match: <?php $email = 'user@email.com'; preg_match('/(\S+)(@
用户名部分username@email.com
),所以去掉@及其后面的所有字符。如果您有PHP5.3,您可以使用
如果没有,只需使用可靠的substr
$username = substr($email, 0, strpos($email, '@'));
可以使用explode()拆分字符串
由于还没有人使用过preg_match
:
<?php
$email = 'user@email.com';
preg_match('/(\S+)(@(\S+))/', $email, $match);
/* print_r($match);
Array
(
[0] => user@email.com
[1] => user
[2] => @email.com
[3] => email.com
)
*/
echo $match[1]; // output: `user`
?>
使用数组意味着,如果您以后决定使用email.com
部分,您已经将其分离出来,并且不必大幅更改您的方法。:) @chriso:为什么这里不需要它。字符串函数更快;)为什么不必使用数组?+1查看手册页面,以strstr为例,完全相同的问题已经解决了。我怀疑他是否已经知道@email.com
部分,而不知道用户名
部分。在这种情况下,EXPLODE是最好的选择,尽管可以通过循环所有列表来完成,和子串它!!!虽然这段代码可以回答这个问题,但提供关于它如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
$email = 'hello@email.com';
/*split the string bases on the @ position*/
$parts = explode('@', $email);
$namePart = $parts[0];
$parts=explode('@','username@email.com');
echo $parts[0];// username
echo $parts[1];// email.com
$text = 'abc@email.com';
$text = str_replace('@email.com','',$text);
<?php
$email = 'user@email.com';
preg_match('/(\S+)(@(\S+))/', $email, $match);
/* print_r($match);
Array
(
[0] => user@email.com
[1] => user
[2] => @email.com
[3] => email.com
)
*/
echo $match[1]; // output: `user`
?>
function subStrEmail($Useremail)
{
$emailSub=substr($Useremail,4);
$email = explode('.', $emailSub);
if($email[0]=='www'){
$email=substr($emailSub,4);
$email=ltrim($email,'www.');
return $email;
}
return $emailSub;
}