文字列の最後まで4文字ごとに出力にスペースを追加したいと思います。私は試した:
$str = $rows['value'];
<? echo substr($str, 0, 4) . ' ' . substr($str, 4); ?>
最初の4文字の後にスペースができました。
4日ごとに表示するにはどうすればよいですか?
文字列の最後まで4文字ごとに出力にスペースを追加したいと思います。私は試した:
$str = $rows['value'];
<? echo substr($str, 0, 4) . ' ' . substr($str, 4); ?>
最初の4文字の後にスペースができました。
4日ごとに表示するにはどうすればよいですか?
あなたはchunk_split
[ドキュメント]を使うことができます:
$str = chunk_split($rows['value'], 4, ' ');
文字列の長さが4の倍数であるが、末尾にスペースが必要ない場合は、結果をに渡すことができますtrim
。
wordwrap と呼ばれるこの関数を既に見たことがありますか? http://us2.php.net/manual/en/function.wordwrap.php
これが解決策です。このように箱から出してすぐに動作します。
<?php
$text = "Thiswordissoverylong.";
$newtext = wordwrap($text, 4, "\n", true);
echo "$newtext\n";
?>
途中で、4文字のチャンクに分割し、各部分の間にスペースを入れてそれらを再び結合します。
最後のチャンクが正確に4文字である場合、これは技術的に最後に1つを挿入するのを見逃すため、手動で追加する必要があります(デモ)。
$chunk_length = 4;
$chunks = str_split($str, $chunk_length);
$last = end($chunks);
if (strlen($last) === $chunk_length) {
$chunks[] = '';
}
$str_with_spaces = implode(' ', $chunks);
一発ギャグ:
$yourstring = "1234567890";
echo implode(" ", str_split($yourstring, 4))." ";
これにより、出力として次のようになります:
1234 5678 90
それだけです:D
関数wordwrap()
は基本的に同じことをしますが、これもうまくいくはずです。
$newstr = '';
$len = strlen($str);
for($i = 0; $i < $len; $i++) {
$newstr.= $str[$i];
if (($i+1) % 4 == 0) {
$newstr.= ' ';
}
}
PHP3互換:
これを試して:
$strLen = strlen( $str );
for($i = 0; $i < $strLen; $i += 4){
echo substr($str, $i, 4) . ' ';
}
unset( $strLen );
StringBuilder str = new StringBuilder("ABCDEFGHIJKLMNOP");
int idx = str.length() - 4;
while (idx > 0){
str.insert(idx, " ");
idx = idx - 4;
}
return str.toString();
説明、このコードは右から左にスペースを追加します:
str = "ABCDEFGH" int idx = total length - 4; //8-4=4
while (4>0){
str.insert(idx, " "); //this will insert space at 4th position
idx = idx - 4; // then decrement 4-4=0 and run loop again
}
最終的な出力は次のようになります。
ABCD EFGH