首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用lasr在php中发生点分裂/爆炸字符串?

如何用lasr在php中发生点分裂/爆炸字符串?
EN

Stack Overflow用户
提问于 2014-03-21 08:46:13
回答 3查看 1.2K关注 0票数 0

朋友们,我在php中有字符串,如

  1. 美国广播公司com
  2. name.com
  3. abc.xyz.name.org

现在我想把上面的域名(粗体文本)分割成

  1. string1=abc string2=com
  2. string1=abc string2=name.com
  3. string1=abc.xyz string2=name.org

意思是我想分割用户名和域名。

所以请帮帮我。

EN

回答 3

Stack Overflow用户

发布于 2014-03-21 08:53:06

你可以尝试:

代码语言:javascript
复制
$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);
}

产出:

代码语言:javascript
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2014-03-21 08:53:15

使用array_pop()函数后发生爆炸():

代码语言:javascript
复制
$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

票数 1
EN

Stack Overflow用户

发布于 2014-03-21 09:09:37

这应该能起作用。我试着使它尽可能详细。在线测试

代码语言:javascript
复制
<?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"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22553988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档