2011-04-22 212 views
4

您好想要将显示的用户名如[email protected]更改为abcd。 所以为此,我应该从@开始剪辑部分。如何通过PHP从字符串获取子字符串?

我可以通过Java或C#中的variablename.substring()函数很容易地做到这一点,但我不知道PHP的语法。 所以帮我做到这一点。

假设我有类似的变量。

$username = "[email protected]"; 
$username = some 

字符串操作函数应该在这里调用; 这样 echo $ username; 只能导致abcd。

回答

8

试试这个:

$username = substr($username, 0, strpos($username, '@')); 
+0

-1中的文档到底是不需要,否则它会减少一个字符。但感谢代码。 – Abhi 2011-04-22 05:57:25

+0

糟糕,你是对的。我修正了我的例子。 – 2011-04-22 05:59:12

+0

@亚当投了下来,接受了它......这是不同的:P – alex 2011-04-22 06:00:41

1
substr(string, 0, 20) 

字符串,开始位置,长度

+0

嘿,我不能硬编码20每次如何获得@指数有 – Abhi 2011-04-22 05:44:08

+0

你可以找到使用strpos的@ somedomain.com的位置()。 – Ibu 2011-04-22 05:44:57

+0

不,这只是一个例子,对于更强大的方式,你可以使用preg_replace()的正则表达式来查看php.net/manual/en/function.preg-replace.php – Ibu 2011-04-22 05:46:58

3

使用strstr功能。

从PHP参考一个例子 -

<?php 
    $email = '[email protected]'; 
    $domain = strstr($email, '@'); 
    echo $domain; // prints @example.com 

    $user = strstr($email, '@', true); // As of PHP 5.3.0 
    echo $user; // prints name 
?> 
相关问题