1

例如,

该变量$creator包含格式为 的用户名john.smith

如何将其转换为另一个变量,例如$creator1将用户名缩减为以下格式:jsmith.

所以我想删除第一个字符和“。”之间的所有内容。并将结果放入另一个名为$creator1.

4

10 回答 10

2

尝试:

$creator = 'john.smith';
list($name, $surname) = explode('.', $creator);

$creator1 = substr($name, 0, 1) . $surname;

也可以将字符串视为字符数组,因此:

$creator1 = $name[0] . $surname;

编辑:

要检查是否$creator包含点,请执行以下操作:

$creator = 'john.smith';
if ( strpos($creator, '.') !== false ) { // contains dot
    list($name, $surname) = explode('.', $creator);
    $creator1 = substr($name, 0, 1) . $surname;
} else { // doesn't contain dot
    $creator1 = $creator;
}
于 2012-09-06T12:04:52.580 回答
1

你可以用不同的方式来做,我给你解释一个:

$name = "jonh.smith";
$data = explode(".",$name); // This will separate the name using dot as delimiter
$name1 = $data[0]; // Has jonh
$name2 = $data[1]; // Has smith
$nick = substr($name1,0,1); // Gets the first char
$nick = $nick . $name2; // Appends smith

这是一个快速编码的,但你会明白的。

于 2012-09-06T12:06:34.953 回答
1
$fullname = 'john.smith';
$parts = explode('.', $fullname);
$lastname = $parts[1];  // smith
$firstname = $parts[0][0]; // j
于 2012-09-06T12:06:43.123 回答
1

你可以这样做:

$username = 'jhon.smith';
$new_string = $username{0} . substr($username, strpos($username,'.')+1, strlen($username));
于 2012-09-06T12:05:22.993 回答
0

使用这个正则表达式:

$var1="john.smith";
$var2=preg_replace(array("/^(.{1})(.*)(\..*)/"),array("$1$3"),$var1);
echo $var2;

http://codepad.viper-7.com/ROgj02

编辑:如果字符串不包含“。” 这个表达式只返回相同的字符串:

$var1="john.smith";
$var2="johnsmith";
$res1=preg_replace(array("/^(.{1})(.*)(\..*)/"),array("$1$3"),$var1);
$res2=preg_replace(array("/^(.{1})(.*)(\..*)/"),array("$1$3"),$var2);
var_dump($res1,$res2);

它返回:

字符串(7)“j.smith”字符串(9)“约翰史密斯”

于 2012-09-06T12:25:04.507 回答
0

这会成功的。

$creator = "john.smith";
$pos = strpos($creator,'.');
$creator1 = substr($creator,0,1).substr($creator,$pos+1,strlen($creator)-$pos);
echo $creator1; // jsmith
于 2012-09-06T12:06:41.393 回答
0

尝试这个

$creator="john.smith"
$creator_split=explode('.',$creator);
$creator_first=str_split($creator_split[0]);
$creator1=$creator_first[0].$creator_split[1];
于 2012-09-06T12:07:30.333 回答
0

我正在使用我自己的变量,请用您的变量替换它

$str = "john.smith";
$str1 = explode(".",$str);
$str2 = $str1[0];
$str3 = $str1[1];
$str4 = substr($str2,0,1);
$finalString = $str4.$str3;
于 2012-09-06T12:10:40.943 回答
0
$creator = 'john.smith';
$parts = explode('.', $creator);
$condensed = $creator{0} . $parts[1];
print $condensed;
// jsmith
于 2012-09-06T12:05:38.697 回答
0
$creator1 = substr($creator, 0, 1).substr($creator, strpos($creator, ".")+1);
于 2012-09-06T12:05:07.230 回答