【问题标题】:How to split a string with delimiter in PHP? [closed]如何在 PHP 中用分隔符分割字符串? [关闭]
【发布时间】:2015-04-27 12:22:10
【问题描述】:

我有一个字符串

1b00bd515bf8cbc5a86f3b714361fab6

我想把它分解成这样:

1b00bd51-5bf8cbc5-a86f3b71-4361fab6

我该怎么做?

【问题讨论】:

  • 你试过了吗?
  • 你是如何决定断点的?
  • 所以...每 8 个字符拆分一个字符串?
  • 这看起来像一个 GUID 标识符,您正在尝试获取带有破折号的 GUID。 PHP中没有一个函数可以自动格式化带或不带破折号的字符串吗?
  • 抱歉,您的破折号不适用于有效的 Guid :) 我的道歉。

标签: php regex string


【解决方案1】:

使用 chunk_split 函数将字符串分割成更小的块

下面:

$str = "1b00bd515bf8cbc5a86f3b714361fab6";

$str = trim(chunk_split(str_replace('-','',$str), 8, '-'), '-');

【讨论】:

  • 为什么 OP 应该“试试这个”?请添加对您所做的事情以及您这样做的原因的解释,不仅是为了 OP,而且是为了未来的 SO 访问者。
  • 使用 str_replace('-','') 替换 - before after use chunk_split
【解决方案2】:

您可以使用chunk_split () 方法根据固定长度拆分字符串。 link

解决方案应该是这样的

$newstr = chunk_split($string,8,"-");

【讨论】:

    【解决方案3】:

    试试这个:

    function split($str, $num, $cr)
    {
        return trim(chunk_split($str, $num, $cr), $cr);
    }
    $str = "1b00bd515bf8cbc5a86f3b714361fab6";
    echo split($str, 8, '+');
    

    输出:

    1b00bd51+5bf8cbc5+a86f3b71+4361fab6
    

    【讨论】:

      【解决方案4】:

      上面的一个变体,但可能更少的代码。

          $s='1b00bd515bf8cbc5a86f3b714361fab6';
          echo implode( '-', str_split( $s,8 ) );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-31
        • 2013-05-03
        • 1970-01-01
        • 1970-01-01
        • 2021-06-12
        相关资源
        最近更新 更多