朋友们,我在php中有字符串,如
现在我想把上面的域名(粗体文本)分割成
意思是我想分割用户名和域名。
所以请帮帮我。
发布于 2014-03-21 08:53:06
你可以尝试:
$inputs = ['abc.com', 'abc.name.com', 'abc.xyz.name.org'];
foreach ($inputs as $input) {
$parts = explode('.', $input);
$right = [array_pop($parts)];
if (count($parts) > 1) {
$right[] = array_pop($parts);
}
$output = [
'left' => implode('.', $parts),
'right' => implode('.', $right),
];
var_dump($output);
}产出:
array (size=2)
'left' => string 'abc' (length=3)
'right' => string 'com' (length=3)
array (size=2)
'left' => string 'abc' (length=3)
'right' => string 'com.name' (length=8)
array (size=2)
'left' => string 'abc.xyz' (length=7)
'right' => string 'org.name' (length=8)发布于 2014-03-21 08:53:15
使用array_pop()函数后发生爆炸():
$vars = explode('.', $string);
if ( count($vars) == 3 ) {
$string2 = $vars[1] . '.' . $vars[2];
$string1 = $vars[0];
}
if ( count($vars) == 2 ) {
$string2 = $vars[1];
$string1 = $vars[0];
}
// Or you may use
$vars = explode('.', $string);
if ( count($vars) == 3 ) {
$string2 = $vars[1] . '.' . $vars[2];
$string1 = $vars[0];
}
if ( count($vars) == 2 ) {
$string2 = array_pop($vars);
$string1 = array_pop($vars);
}检查php.net中的弹出和爆炸
http://php.net/manual/en/function.array-pop.php
http://php.net/manual/en/function.explode.php
发布于 2014-03-21 09:09:37
这应该能起作用。我试着使它尽可能详细。在线测试
<?php
function get_last_dot_occurence ($url ) {
$fullArray = explode('.', $url);
$newArray = "";
switch (count($fullArray)) {
case 0:
break;
case 1:
$newArray = $url;
break;
case 2:
$newArray = array("string1" => $fullArray[0], "string2" => $fullArray[1]);
break;
default:
$string1 = "";
for ($i=0; $i < count($fullArray)-2; $i++) {
$string1 .= $fullArray[$i];
if($i != count($fullArray)-3)
$string1 .= '.';
}
$string2 = $fullArray[count($fullArray)-2].'.'.$fullArray[count($fullArray)-1];
$newArray = array("string1" => $string1, "string2" => $string2);
break;
}
return $newArray;
}
print_r(get_last_dot_occurence("abc.com"));
print_r(get_last_dot_occurence("abc.name.com"));
print_r(get_last_dot_occurence("abc.xyz.name.org"));https://stackoverflow.com/questions/22553988
复制相似问题