首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每隔4个字符后添加空格

每隔4个字符后添加空格
EN

Stack Overflow用户
提问于 2012-08-04 18:21:08
回答 8查看 73.5K关注 0票数 68

我想在输出中每隔4个字符后添加一个空格,直到字符串结束。我试过了:

代码语言:javascript
运行
复制
$str = $rows['value'];
<? echo substr($str, 0, 4) . ' ' . substr($str, 4); ?>

这就给我留出了前4个字符后面的空格。

我怎么才能让它在每四个月之后才能显示出来呢?

EN

回答 8

Stack Overflow用户

发布于 2014-07-02 02:17:40

Wordwrap做的正是你想要的:

代码语言:javascript
运行
复制
echo wordwrap('12345678' , 4 , ' ' , true )

将输出: 1234 5678

如果你想,比方说,每隔一位数字后加一个连字符,把"4“换成"2",把空格换成连字符:

代码语言:javascript
运行
复制
echo wordwrap('1234567890' , 2 , '-' , true )

将输出: 12-34-56-78-90

Reference - wordwrap

票数 60
EN

Stack Overflow用户

发布于 2012-08-04 18:23:59

你见过这个叫做wordwrap的函数吗?http://us2.php.net/manual/en/function.wordwrap.php

这是一个解决方案。开箱即用,就像这样。

代码语言:javascript
运行
复制
<?php
$text = "Thiswordissoverylong.";
$newtext = wordwrap($text, 4, "\n", true);
echo "$newtext\n";
?>
票数 9
EN

Stack Overflow用户

发布于 2018-05-15 13:26:03

这是一个字符串的例子,长度不是4的倍数(在我的例子中是5的倍数)。

代码语言:javascript
运行
复制
function space($str, $step, $reverse = false) {
    
    if ($reverse)
        return strrev(chunk_split(strrev($str), $step, ' '));
    
    return chunk_split($str, $step, ' ');
}

使用:

代码语言:javascript
运行
复制
echo space("0000000152748541695882", 5);

成绩: 00000 00152 74854 16958 82

反向模式使用("BVR code“用于瑞士计费):

代码语言:javascript
运行
复制
echo space("1400360152748541695882", 5, true);

成绩: 14 00360 15274 85416 95882

编辑 2021-02-09

对于EAN13条形码格式也很有用:

代码语言:javascript
运行
复制
space("7640187670868", 6, true);

成绩:7 640187 670868

短句法版本:

代码语言:javascript
运行
复制
function space($s=false,$t=0,$r=false){return(!$s)?false:(($r)?trim(strrev(chunk_split(strrev($s),$t,' '))):trim(chunk_split($s,$t,' ')));}

希望能对你们中的一些人有所帮助。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11807796

复制
相关文章

相似问题

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