格式化一个用点分隔的字符串

时间:2011-06-06 15:48:51

标签: php

是否有另一种替代方案(较小的)用于格式化用点分隔的字符串?像这样:

未格式化的: 9211fe01c98c8847c1a397a6c9c95986

格式化 9211.fe01.c98c.8847.c1a3.97a6.c9c9.5986

我正在使用substr函数,如下例所示:

$part1 = substr($codigo, 0, 4); 
$part2 = substr($codigo, 4, 4); 
$part3 = substr($codigo, 8, 4); 
$part4 = substr($codigo, 12, 4); 
$part5 = substr($codigo, 16, 4);
$part6 = substr($codigo, 20, 4);
$part7 = substr($codigo, 24, 4);
$part8 = substr($codigo, 28, 4);
echo "$part1.$part2.$part3.$part4.$part5.$part6.$part7.$part8"; 

该字符串有32个字符。

3 个答案:

答案 0 :(得分:5)

使用str_splitimplode

$str = '9211fe01c98c8847c1a397a6c9c95986';
$result = implode('.', str_split($str, 4));

答案 1 :(得分:2)

$a = "9211fe01c98c8847c1a397a6c9c95986";
echo preg_replace ('/(.{4})(?=.)/', '\\1-', $a);

答案 2 :(得分:1)

$arr = implode('.',str_split($codigo,4));