如何使用PHP或Shell将此字符串转换为每8位数一个空格。由此:
0100010101110010011100100110111101110010
对此:
01000101 01110010 01110010 01101111 01110010
答案 0 :(得分:10)
解决这个问题的最快,也是最清晰的方法很可能如下:
<?php
$input = "0100010101110010011100100110111101110010";
$newString = chunk_split($input, 8, ' ');
echo $newString;
?>
答案 1 :(得分:5)
<?php
$str = "0100010101110010011100100110111101110010";
$str = implode(' ',str_split($str,8));
echo $str; //output: 01000101 01110010 01110010 01101111 01110010
$str = str_replace(' ','',$str);
echo $str; //output: 0100010101110010011100100110111101110010
?>
答案 2 :(得分:3)
#!/bin/sh
echo 0100010101110010011100100110111101110010 | sed 's/......../& /g'
答案 3 :(得分:3)
从bash尝试这样的事情:
echo "0100010101110010011100100110111101110010" | sed -E "s/([0-9]{8})/\1 /g"
扩展正则表达式的-E可能是Linux上的其他内容(GNU sed)。
答案 4 :(得分:3)
不要忘记awk
:
awk '{gsub(/.{8}/,"& ",$0); print}'
[jaypal:~/Temp] echo "0100010101110010011100100110111101110010" |
awk '{gsub(/.{8}/,"& ",$0); print}'
01000101 01110010 01110010 01101111 01110010
答案 5 :(得分:1)
$string = "0100010101110010011100100110111101110010";
$newString = trim(implode('',array_map(function($value) { return $value.' '; }, str_split($string,8))));